如果满足条件,Rails 中的条件 link_to 块
Conditional link_to block in Rails if condition is met
我想将条件 link_to 包裹在一些代码中,如果满足以下条件,这些代码只会呈现 link: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 %>
你应该使用 link_to_if
.
这是文档 link。 http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if
你可以试试下面的
<% @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元素
我通过执行以下操作解决了这个问题:
查看:
<% @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
参考:
我想将条件 link_to 包裹在一些代码中,如果满足以下条件,这些代码只会呈现 link: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 %>
你应该使用 link_to_if
.
这是文档 link。 http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if
你可以试试下面的
<% @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元素
我通过执行以下操作解决了这个问题:
查看:
<% @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
参考: