Rails条件命名

时间:2011-10-17 17:38:48

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个_form partial,rails为我自动命名提交按钮,用于新视图和编辑视图。在新视图中,我更喜欢将提交按钮值简单地读为“创建”而不是“创建链接”

我用<%= form.submit "Create" %>

实现了这个目标

如何在修改视图中显示<%= form.submit "Update" %>并在新的待处理视图'_form.html.erb'中显示<%= form.submit "Create" %>?感谢

_form https://gist.github.com/1293210

1 个答案:

答案 0 :(得分:2)

好吧,我假设你传递了一个对象,比如@user。在这种情况下,在_form中,执行以下操作:

<% editing = @user.new_record? ? false : true %>
<% default_text = editing ? "Update" : "Create" %>
<% form.submit default_text %>

我在这里制作了单独的编辑和default_text变量,但您可以在一行中执行此操作,如:

<% form.submit @user.new_record? ? "Create" : "Update" %>

我向您展示变量的唯一原因是因为它可以轻松扩展到您在表单上的其他文本。

编辑我还应该提一下,如果对于新用户(例如)你只是在你的控制器中将@user设置为User.new,那么使用new_record?的方法是有效的,但是编辑你做User.find(...)。