Ruby on rails 如果满足条件,则在Rails中阻塞条件链接

Ruby on rails 如果满足条件,则在Rails中阻塞条件链接,ruby-on-rails,link-to,Ruby On Rails,Link To,我想将一个条件链接包装在一些代码周围,这些代码仅在满足以下条件时才会呈现链接:ifcurrent\u user.type==“Agent”。条件中的内容仍然需要渲染,无论如何 我的当前块如下所示: <% @jobs_published.in_groups_of(3, false) do |job| %> <div class="row"> <%= link_to "/job/#{job.id}" do %> &l

我想将一个条件链接包装在一些代码周围,这些代码仅在满足以下条件时才会呈现链接:if
current\u 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 %>

工作


如果
的话,你应该使用
链接到


这里是文档链接

你可以试试下面的方法

<% @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 %>

工作

有许多条件链接到元素


我通过执行以下操作解决了此问题:

视图:
参考资料:

谢谢您的回答@rajarshi das。我已经尝试了上面的解决方案,但是它在块内没有输出任何内容。上面的解决方案呈现如下:
所以我尝试了:
,href现在是正确的,但是块中没有任何内容仍然显示!您必须像这样使用
谢谢,但它仍然不会在我的块中呈现任何内容,例如
作业

我也不需要它呈现任何字符串。它只需要一个HREFI。如果您当前的用户类型是“代理”,请查看/调试它是什么给予
谢谢,伙计。请参阅上面的我的评论,这不符合预期。@ThomasTaylor,因此您希望呈现块内的内容,但不是作为链接,而是与内容一起呈现的简单跨距。谢谢,但链接到如果是,我想呈现块内的所有内容,我只想将其包装在条件href中。
<% @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