【发布时间】:2014-06-08 11:42:53
【问题描述】:
我想在一页上有多个表单。让我们做一个例子来理解我想要什么:
我有一个管理员页面,假设它是admins#show 页面。我的管理员必须在此页面的一个表格上更改他的名字,在另一个表格上更改他的年龄。我知道我可以创建一个表单,但我想要多个表单(因为这只是一个示例)。所以我的admins#show 页面看起来像这样:
<%= form_for @admin do |a| %>
<%= a.label :name %>
<%= a.text_field :name %>
<%= a.submit "Submit name change" %>
<% end %>
<%= form_for @admin do |e| %>
<%= e.label :age %>
<%= e.number_field :age %>
<%= e.submit "Submit age change" %>
<% end %>
但是在我的控制器中,我真的不知道它是如何工作的,这是我的问题。我想我有这样的东西,但是如何在更新方法中划分表单输入?:
def edit
@admin = Admin.find(params[:id])
end
def update
@admin= Admin.find(params[:id])
if @admin.update_attributes(:name=> admin_params1[:name])
redirect_to @admin
else
render 'edit'
end
if @admin.update_attributes(:age=> admin_params2[:age])
redirect_to @admin
else
render 'edit'
end
end
private
def admin_params1
params.require(:admin).permit(:name)
end
def admin_params2
params.require(:admin).permit(:age)
end
【问题讨论】:
标签: ruby-on-rails forms actioncontroller