在ActionView我需要顯示一個基於條件的屬性。有條件的HTML屬性
<%= f.text_field :regmax_remote, {
:class => 'span2',
:style => "display:#{@event.regmax_remote.present? ? "block" : "none"};"
}
%>
有沒有比這更好的方法呢?
在ActionView我需要顯示一個基於條件的屬性。有條件的HTML屬性
<%= f.text_field :regmax_remote, {
:class => 'span2',
:style => "display:#{@event.regmax_remote.present? ? "block" : "none"};"
}
%>
有沒有比這更好的方法呢?
上面的代碼是好的,如果你要使用它只有一次,
但如果這會在很多地方都可以使用,那麼U可需要幫手
def event_display_style event
event.regmax_remote.present? ? "block" : "none"
end
,如果您有基於幾個條件的多個屬性,然後你可以使用幫助器以哈希格式返回屬性並像這樣使用它。
<%= f.text_field :regmax_remote, event_display_style(@event) %>
如果u想使用默認的哈希一個可變的散列然後ü可以做這樣的事情,以及
<%= f.text_field :regmax_remote, {class: "span2"}.merge(event_display_style(@event)) %>
還有一些其他的方法來使此代碼更好看。你也可以喜歡它的寶石。它可以同時顯示面向對象的控件,可以接受視圖幫助器。
你可以嘗試像下面,
<% if (@event.regmax_remote.present?) %>
<%= f.text_field :regmax_remote, class: "span2" %>
<% end %>
不要複製相同,只需編輯按你的代碼,並使用這個作爲例子。
這是行不通的,因爲元素需要被添加到形式,因爲我將在後面的JavaScript –
你需要清楚地描述你的問題將其切換。您需要顯示哪個字段以及條件 – Vinay