有关类

时间:2015-06-24 17:41:46

标签: css ruby-on-rails

我在使用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 %>

1 个答案:

答案 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 %>