gpt4 book ai didi

mysql - Ruby on Rails - 基本表单提交

转载 作者:行者123 更新时间:2023-11-29 06:23:54 25 4
gpt4 key购买 nike

我一直在研究 PHP。目前正在尝试学习 Ruby on Rails。我正在在线学习 Rails,目前我严重停留在注册或可以说表单提交页面上。对不起,如果它太傻了。

错误是:

nil:NilClass 的未定义新方法

代码如下:

users_controller.rb

class UsersController < ApplicationController
def new
@user= User.new
end

def create
@user.new(params[:user])
if @user.save
flash[:notice]= "you signed up successfully"
flash[:color]= "valid"
else
flash[:notice]= "failed"
flash[:color]="invalid"
end
render "new"
end
end

new.html.erb

<% page_title="Signup" %>
<div class="Sign_Form">
<h1>Sign up</h1>
<%= form_for(:user, :url => {:controller => 'users', :action => 'create'}) do |f| %>
<p> Username:</br> <%= f.text_field :username%> </p>
<p> Email:</br> <%= f.text_field :email%> </p>
<p> Password:</br> <%= f.password_field :password%></p>
<p> Password Confirmation:</br> <%= f.password_field :password_confirmation%> </p>
<%= f.submit :Signup %>
<% end %>
<% if @user.errors.any? %>
<ul class="Signup_Errors">
<% for message_error in @user.errors.full_messages %>
<li>* <%= message_error %></li>
<% end %>
</ul>
<% end %>
</div>

用户.rb

class User < ActiveRecord::Base

attr_accessor :password
EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
validates :username, :presence => true, :uniqueness => true, :length => { :in => 3..20 }
validates :email, :presence => true, :uniqueness => true #:format => EMAIL_REGEX
validates :password, `enter code here`:presence =>true #:confirmation => true #password_confirmation attr
validates_length_of :password, :in => 6..20, :on => :create
end

最佳答案

在您的 users_controller> create 中,您将大写字母放在 User 参数上。

对于您的情况,它应该全部为小写 params[:user]。旁注,它实际上取决于您首先在表单上设置的属性名称。

编辑:除此之外,你应该放 @user = User.new(params[:user])

关于mysql - Ruby on Rails - 基本表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32087546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com