0

タグ付けには、acts-as-taggable-on を使用します。SO の以前の質問に基づいて、ビューのロジックを最小限に抑え、ビュー テンプレートの条件のヘルパーを作成する必要があることを読みました。これまでの私のコードは次のとおりです。(レールによる新機能)

ルート:

resources :appartments do
  collection do
    get ':tag', to: 'appartments#index', as: :tag
    end

私のコントローラー:

def index
    if params[:tag]
            @apartments = Appartment.tagged_with(params[:tag])
            else
            @apartments = Appartment.all
            end
    end

アプリケーション ヘルパー:

def render_partials_conditionally
        if @apartments.include?("family")
            render :partial => 'familie'
            if @apartments.include?("groups")
            render :partial => 'groups'
        end
    end
end

アイデア (私が推測) は、値「家族」が @apartments 配列に含まれているかどうかを確認することですか? 方法

アパートインデックスビュー

 = render_partials_conditionally   

アパート/家族に行くと、部分的な _family が表示されるはずですが、何も起こりません...エラーも部分もありません

私は何を間違っていますか?

Grtz..remco

4

1 に答える 1

0

がモデルの場合Appartment、@apartments はオブジェクトの配列である必要があるため@apartments.include?("family")、and@apartments.include?("groups")は真になりません。代わりに、コードは次のようになります。

@apartments.any? { |apartment| apartments.some_field == "groups" }

しかし、それでもまだ十分ではないと思います。より良いアプローチは、ヘルパーがパーシャルの名前のみを返し、パーシャルをビューにレンダリングすることです。

于 2012-11-17T11:52:05.870 に答える