我在使用rails时遇到了困难。事实上,我写了这些内容:
<%= link_to :controller => "offers", :action => "get_offer", :offer_slug => offer.friendly_id, {:class => "media"} do %>
。 。
<% end %>
我的问题是link_to中的所有内容都是获取超链接的css效果(没有填充,悬停时加下划线),而不是自定义属性。
就像:class属性没有被考虑在内。
以防万一,这是完整的部分:
<<%= link_to :controller => "offers", :action => "get_offer", :offer_slug => offer.friendly_id, {:class => "media"} do %>
<li id="<%= offer.id %>" class="media" style="border: 1px solid #696969">
<div class="col-lg-3" style="margin-bottom:0px; font-size:12px; text-align:center; margin-right:10px;">
<% if offer.subcategory.nil? %>
<img class="media-object" src="<%= asset_path "other-icon.png" %>" style="margin-bottom:5px;">
<% elsif offer.subcategory.category.icon.empty? %>
<% else %>
<img src="<%= asset_path offer.subcategory.category.icon %>" style="margin-bottom:5px; width:110px;">
<% end %>
<br/>
<% if offer.subcategory.present? %>
<b><%= offer.subcategory.category.name %></b><br/> <%= offer.subcategory.name %>
<% else %>
<b>Autres</b><br/> <%= offer.subcategory_other %>
<% end %>
</div>
<div class="media-body">
<!--Titre annonce + type contrat-->
<div style="text-align:right; margin-bottom: 10px;">
<% if offer.id >= @new_limit %>
<span class="label label-warning">New</span>
<% end %>
<span class="label label-success"><%= (offer.max_price * 0.85).ceil %> euros</span>
<span class="label label-success" style="background-color: grey"><%= (offer.customer_objective) %>
succès </span>
</div>
<h4 class="media-heading">
<%= raw(offer.name) %>
</h4>
<p>
<% if offer.description %>
<%= offer.description.split[0..60].join(" ") %>
<% if offer.description.split[0..60].count >= 59 %>
<% end %>
<% end %>
</p>
<% if offer.company_context.present? %>
<p>
<%= offer.company_context.split[0..60].join(" ") %>
<% if offer.company_context.split[0..60].count >= 59 %>
<% end %>
</p>
<% end %>
</div>
<div class="offer-tags">
<% offer.offer_tags.each do |offer_tag| %>
<span class="badge"><%= offer_tag.tag.name %></span>
<% end %>
</div>
</li>
<% end %>
答案 0 :(得分:2)
尝试用花括号包装类:
<%= link_to :controller => "offers", :action => "get_offer", :offer_slug => offer.friendly_id, { :class => "media" } %>
Rails link_to
帮助程序非常灵活,允许一些不同的呼叫签名,这可能会导致混淆。你需要这个:
link_to(body, url_options = {}, html_options = {})
没有包装括号,Rails不清楚:class
实际上是HTML选项。
文档here。我应该提一下,我也放弃了你的尾随do
,暗示了一块似乎不存在的块(也不需要)。
<强>更新强>
我不明白该块是作为链接主体。在这种情况下,正确的呼叫签名将是:
link_to(options = {}, html_options = {}) do
# name
end
所以,你的身体很好,但在你的link_to
中,你想要对URL选项进行分组,然后是HTML选项。另外,我认为你可能需要围绕整个调用的括号使其正常工作:
<%= link_to({ :controller => "offers", :action => "get_offer", :offer_slug => offer.friendly_id }, { :class => "media" }) do %>