0

データベースに 3 回クエリを実行する代わりに、 switch case を使用してループを作成しています。アクティブなレコード関係をインスタンス変数に追加する方法がわかりません。助けてください。

class QuestionsController < ApplicationController

def index
    @question = Question.new
    @question_lookups = Lookup.where({:look_up_for => "question"})

    @question_lookups.each do |lk|
        case lk.look_up_type
            when 'mode'
                @question_mode = lk #How can i do this here..?
            when 'status'
                @question_status = lk
            else
                @question_type = lk
        end
    end
    session[:lk] = @question_mode

    # @question_mode = Lookup.where({:look_up_for => "question", :look_up_type => "mode"})
    # @question_status = Lookup.where({:look_up_for => "question", :look_up_type => "status"})
    # @question_type = Lookup.where({:look_up_for => "question", :look_up_type => "type"})
end

end
4

1 に答える 1

1

question_mode などを配列に変換して lk をプッシュ

@question_mode, @question_status, @question_type = []
@question_lookups.each do |lk|
    case lk.look_up_type
        when 'mode'
            @question_mode << lk #How can i do this here..?
        when 'status'
            @question_status << lk
        else
            @question_type << lk
    end
end
于 2012-11-12T00:13:50.447 に答える