我的rails应用程序上有一个页面,用户可以在其中查看和更改其信息。
出于UX原因,该页面分为几种形式。 每个表单用于更新一组特定的详细信息,例如,有一个表单用于一般详细信息(名称,电子邮件地址),一个用于更改密码等。
目前,我只有一个表格,但我想补充一些其他表格。处理这个问题的最佳方法是什么?我有两个主要的猜测,但无法弄清楚哪一个最适合。
1 - 将“id”与每个表单相关联,并在我的用户控制器中的“update”操作中添加一些if else语句。
2 - 在我的控制器中创建新功能(update_password,update_general_info)并使用路由。
什么是最好的解决方案和时尚的设计方法?
干杯
答案 0 :(得分:0)
执行此操作的一种方法是为每个表单的提交按钮指定名称和值。
<%= f.submit 'Update Password' %>
将呈现以下HTML:
<input type="submit" value="Update Password" name="commit" />
然后在控制器中,您可以添加case
或if
来检查该参数。
def update
case params[:commit]
when "Update Password"
# Update the Password
when "Update Address"
# Update the address
else
# Default case
end
#...
end
这里最大的缺点是它将显示HTML与控制器耦合 - 你无法在不更新控制器的情况下更改按钮文本。