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

Rails 3用#flits_list#flits_list :hoverinでcss を作成しましたが、リストの最初 ( ) に別の css を持たせたいので、クラスを作成しましたが、このコードはエラーを返しますapplication.cssflitflits_list.first

home#index にメソッド エラーはありません。予期しないときに nil オブジェクトがあります! 配列のインスタンスを期待していたかもしれません。nil.first の評価中にエラーが発生しました

どんな助けでも大歓迎です。

4

1 に答える 1

0

問題は、おそらく all_flits メソッドが nil を返すため、@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 に答える