任何人都可以告诉我是否有像这样的东西替换Rail3:
<%= unless @page.new_record? || !@page.background_image? %>
bla
<% end %>
我正在尝试仅在用户编辑时在表单上显示复选框。不是在他们创造的时候。
答案 0 :(得分:2)
我认为该陈述没问题,但不应包含在您的视图中。相反,创建一个模型方法,可能名为is_editable?或其他东西,包括这个陈述。然后在控制器中获取一个实例变量并改为使用它。
观点中的逻辑是一个非常糟糕的主意:)
答案 1 :(得分:2)
你的错误包括红宝石代码中的=。
<% unless @page.new_record? || !@page.background_image? %>
bla
<% end %>
但是,正如其他用户所说,最好将此逻辑隐藏在模型中而不是视图中。此外,它被认为是仅使用的最佳实践,除非只有一个布尔语句。当你有ors和nots时,它开始变得越来越难以阅读。
<% if @page.is_editable %>
blah
<% end %>
这将是一个更好的版本,甚至比那更好(取决于'blah'的复杂程度)将整个事物隐藏在辅助方法中。
<%= some_special_checkbox(f) %>
参数f将是表单对象,以便您的帮助程序可以呈现表单的复选框。
答案 2 :(得分:0)
你可以这样写:
<%= "bla" unless @page.new_record? || !@page.background_image? %>
可能你应该用更易读的名称编写单独的方法,并用一种方法替换这个条件。尽量让你的观点尽可能清洁