我有一个标准设计用户注册表单,其中包含姓名和电子邮件。我想创建另一个表单以从另一个页面上的用户获取更多信息,并将新字段输入到用户模型中。我在用户模型中为新字段创建了迁移。
我在一个设计循环中创建了路径,控制器中的方法创建了一个带有表单的视图页面。下面的路线有效,表格显示在页面上,但是当我点击提交时,没有任何反应。我想确认我的路线和表格代码是否正确。
routes.rb - 我需要一个' put'或者'发布'下面??
devise_scope :users do
put '/users/bankacc', :to => 'application#bankacc'
end
我的观看代码 - 在这种情况下我需要form_for或form_tag吗?
<%= form_for(@user, url: users_bankacc_path, html: { method: :put }) do |f| %>
#form inputs
<% end %>
在我的方法中 - 如何找到ActiveRecord?当我输入User.find(params[:id])
时,表示用户未找到。
答案 0 :(得分:0)
您使用此表单进行编辑/新用户,因此您需要检查操作帖子(对于new_record)/ put(更新存在记录),因此请使用以下代码:
- url = @user.new_record? ? users_bankacc_path : users_bankacc_path(@user)
- method = @user.new_record? ? "post" : "put"
<%= form_for(@user, url: url, html: { method: method.to_sym }) do |f| %>
#form inputs
<% end %>
您需要按以下方式更新路线:
put '/users/bankacc', :to => 'application#bankacc', :as => 'users_bankacc'