我想在一些代码中包含条件link_to,只有满足以下条件才会呈现链接:IF current_user.type == 'Agent'
。无论如何,仍然需要呈现条件内的内容。
我当前的块看起来像这样:
<% @jobs_published.in_groups_of(3, false) do |job| %>
<div class="row">
<%= link_to "/job/#{job.id}" do %>
<div class="panel">
<h4>Job</h4>
<p><%= job.suburb %></p>
<p><%= job.street_name %></p>
<p><%= job.post_cide %></p>
</div>
<% end %>
</div>
<% end %>
答案 0 :(得分:2)
我通过以下方式解决了这个问题:
<% @jobs_published.in_groups_of(3, false) do |job| %>
<div class="row">
<%= link_to_if current_user && current_user.type == 'Agent', { controller: "agents", action: "job", :id => job.id } do %>
<div class="panel">
<h4>Job</h4>
<p><%= job.suburb %></p>
<p><%= job.street_name %></p>
<p><%= job.post_cide %></p>
</div>
<% end %>
</div>
<% end %>
def link_to_if(*args,&block)
args.insert 1, capture(&block) if block_given?
super *args
end
答案 1 :(得分:0)
您应该使用link_to_if
。
这是文档链接。 http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if
答案 2 :(得分:0)
您可以尝试以下
<% @jobs_published.in_groups_of(3, false) do |job| %>
<div class="row">
<%= link_to_if(current_user.type == 'Agent', "/job/#{job.id}") do %>
<div class="panel">
<h4>Job</h4>
<p><%= job.suburb %></p>
<p><%= job.street_name %></p>
<p><%= job.post_cide %></p>
</div>
<% end %>
</div>
<% end %>
有许多条件link_to元素