0
<li<% if @flits.first == flit %> class="first" <% end %>>

#flits_list我在 Rails 3 中为和#flits_list :hoverin创建了 css,application.css但我希望flit列表中的第一个 ( flits_list.first) 具有不同的 css,所以我创建了一个类,但此代码返回错误

home#index 中没有方法错误。当你没想到时,你有一个 nil 对象!您可能期望有一个数组实例。评估 nil.first 时发生错误

任何帮助将不胜感激。

4

1 回答 1

0

问题是 @flits 为 nil,大概是因为您的 all_flits 方法返回 nil。

但是,我建议不要将该逻辑放在视图中,而是分解这样的标签。你有几个选项可以让它更干净:


选项 1:像这样使用 CSS 伪类first-child

 li:first-child {
    ...
 }

这具有不需要任何后端逻辑或特殊标记的优点。唯一的缺点是它对旧浏览器的支持参差不齐,例如 IE6。


选项 2:使用 Rails 标签助手。

<%= content_tag :li, :class => @flits.first==flit?"first":"" %>

选项 3:使用辅助方法将其隐藏起来

<%= li_for_flit %>

然后在助手中:

def li_for_flit
   #spit out your tag here
end
于 2011-07-01T22:22:11.613 回答