我在 Rails 3.2.9 中有注册表单。它在表单中包含一个名为“login”的登录名文本字段,我想使用该字段中的值在数据库中检查重复项以检查登录名可用性功能。但是 params[:login] 没有从表单中正确读取值!!form_for 有什么问题吗?或者我们如何让控制器读取这些值?
注册.html.erb
<%= form_for :user do |f| -%>
<span class='error'><%= flash[:msg] %></span>
<p><label for="login"><span class='redcolor'>*</span>Login</label><br/>
<%= f.text_field :login %></p>
<p><%= submit_tag 'Check Login Availability', :name => 'check' %></p>
<p><label for="email"><span class='redcolor'>*</span>Email</label><br/>
<%= f.text_field :email %></p>
<p><label for="password"><span class='redcolor'>*</span>Password</label><br/>
<%= f.password_field :password %></p>
<p><label for="password_confirmation"><span class='redcolor'>*</span>Confirm Password</label><br/>
<%= f.password_field :password_confirmation %></p>
<p><label for="company"><span class='redcolor'>*</span>Company</label><br/>
<%= f.text_field :company %></p>
<p><%= submit_tag 'Sign up', :name=> 'sign_up' %></p>
我读取值的代码是这样的
account_controller.rb
if params[:check]
puts "in check"
username = params[:login]
puts username//is giving blank
user = User.find_by_login(username)
if user
flash[:msg] = "Sorry Not Available!"
else
flash[:msg] = "Available"
end
这里puts username
给出空白,因此总是显示“可用”。当我在 html 页面中添加名称参数以登录时<%= f.text_field :login,:name => 'login'%>
,代码可以正常用于检查可用性功能,但由于某些 DB 错误提示“登录不能为空”,注册功能失败。
谁能告诉我如何确保 tat params[:login] 正确读取值???