gpt4 book ai didi

ruby-on-rails - 一种型号有多种更新表格

转载 作者:行者123 更新时间:2023-12-01 22:09:55 25 4
gpt4 key购买 nike

我想在一页上有多个表单。让我们举个例子来理解我想要的:

我有一个管理员页面,假设它是 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 %>

但是在我的 Controller 中,我不知道它是如何工作的,这是我的问题。我想我有类似的东西,但是我如何在更新方法中划分表单输入?:

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

最佳答案

你正在做的事情有点非正统,但由于你坚持并且只是一个例子,我想你可以处理< strong>更新方法通过这样做

def update
@admin= Admin.find(params[:id])
if params[:commit] == "Submit name change"
if @admin.update_attributes(admin_params1)
redirect_to @admin
else
render 'edit'
end
elsif params[:commit] == "Submit age change"
if @admin.update_attributes(admin_params2)
redirect_to @admin
else
render 'edit'
end
end
end

注意:未经测试!

关于ruby-on-rails - 一种型号有多种更新表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24105785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com