【问题标题】:Rails Conditional NamingRails 条件命名
【发布时间】:2011-12-09 11:47:25
【问题描述】:

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

我通过<%= form.submit "Create" %> 实现了这一目标

如何让 rails 在编辑视图中显示 <%= form.submit "Update" %> 并在新视图中显示 <%= form.submit "Create" %>,等待渲染哪个视图“_form.html.erb”?谢谢

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

【问题讨论】:

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


    【解决方案1】:

    我假设你传入一个对象,例如@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(...)。

    【讨论】:

    • 谢谢,我用过@link.new_record?而不是用户。
    • 不客气。通常我只是使用@user 作为我的首选示例嘿。
    • 是的,这是我的第一次迭代,所以我还没有创建用户
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2020-05-20
    • 2011-04-10
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多