8

タグ ( <h3><p>、...) の複雑なブロックがあり、条件に基づいてリンク付きまたはリンクなしでレンダリングしたいと考えています。

私はそれがそのように機能することを知ってlink_to_ifいます:

<% link_to_if condition, name, path %>

条件がfalse名前のみの場合、レンダリングされます。

link_toそして、私はwithについて知ってい&blockます:

<% link_to path do %>
  [complex content]
<% end %>

両方の組み合わせが欲しい。link_to_ifを受け入れるステートメントで、条件がの&block場合、ブロックはリンクなしでレンダリングされますfalse。残念ながら、 a を含むステートメントはlink_to_ifステートメントとは&block異なりますlink_to:(

誰か私に提案がありますか?どんな助けでも大歓迎です

4

2 に答える 2

23

私はこれのために自分のヘルパーを書きました:

   def link_to_if_with_block condition, options, html_options={}, &block
     if condition
       link_to options, html_options, &block
     else
       capture &block
     end
   end

次のように使用できます。

<%= link_to_if_with_block true, new_model_path { "test" } %>
<%= link_to_if_with_block true, new_model_path do %>
  Something more complicated
<% end %>
于 2012-04-24T21:21:18.930 に答える