我正在努力用我的 FormTagHelper 修复这个问题,我试图通过的参数被解释为方法 - 因此没有方法错误。
这是视图:
<%= form_tag update_user_email_admin_user_path do %>
<%= text_field :user, :email, placeholder: 'E-mail or user id' %>
<%= text_field :user, :new_email, placeholder: 'New e-mail' %>
<%= submit_tag "Update email", class: 'btn-1 btn-round btn-size-2' %>
<% end %>
这是控制器操作(供您参考):
def update_user_email
user_check = User.find_by_email(params[:user][:new_email].downcase.strip)
if user_check.blank?
@user.email = params[:user][:new_email].downcase.strip
@user.save
flash[:notice] = "Email updated"
else
flash[:alert] = "This email is already being used by someone else!"
end
end
当我在开发中加载页面时,这是无方法错误:
NoMethodError at /admin/users/195455
undefined method 'new_email' for #<User:0x007f9198c3f560>
这让我很困惑,因为我在应用程序中使用了其他几个 FormTagHelper,它们的语法几乎相同,而且它们工作正常。
希望对此多加关注。我是一个n00b,非常感谢提前!