设计新的路线和表格输入

时间:2014-08-19 22:45:17

标签: ruby-on-rails forms devise

我有一个标准设计用户注册表单,其中包含姓名和电子邮件。我想创建另一个表单以从另一个页面上的用户获取更多信息,并将新字段输入到用户模型中。我在用户模型中为新字段创建了迁移。

我在一个设计循环中创建了路径,控制器中的方法创建了一个带有表单的视图页面。下面的路线有效,表格显示在页面上,但是当我点击提交时,没有任何反应。我想确认我的路线和表格代码是否正确。

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])时,表示用户未找到。

1 个答案:

答案 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'