0

Rails のナビゲーション ペインに動的なクラス名を実装したいと考えています。

そのために、次のようにコントローラーで属性を定義しました。

class StoresController < ApplicationController
    @nav = "store"

    def index
        ...
    end
end

そして、ファイルで@nav属性を次のように使用します。application.html.erb

<%= link_to "Store", stores_path, if @nav == 'store' { :class => 'selected' } %>

しかし、うまくいきません。() で link_to を使用したりif、構文を反転したりするなど、他の組み合わせを試しましたが、何も機能しません。

class私の質問: Rails で値を動的に設定するにはどうすればよいですか? ベストプラクティスとは?

前もって感謝します。

4

1 に答える 1

1

@navは、コントローラーオブジェクトインスタンス変数ではなく、コントローラークラスインスタンス変数であり、アクションおよび対応するテンプレートには表示されません。私はあなたが現在のコントローラーに依存したいと思っていると仮定しているので、あなたはこのようなことをすることができます:

<%= link_to "Store", stores_path, { :class => params[:controller] == 'stores' ? 'selected' : '' } %>

私にとってのベストプラクティスは、現在のパスと指定されたパスに応じて、適切なクラス名またはリンク全体(この場合はlink_to置換)を返すヘルパーを作成することです。

于 2012-08-12T22:30:05.800 に答える