0

今、私はこのようにやっています。これは正常なはずですか?
それとも、他の方法でこれを行う他の方法がありますか?どちらがより一般的な方法ですか?

users_controller.rb

before_filter :set_variable

def set_variable
    @number_of_records_to_display = 10  
    @number_of_tags_to_display = 10 
end

def index
...
        @users = User.find_by_username(params[:id]).all_following(order: 'updated_at DESC')
        @users = Kaminari.paginate_array(@users).page(params[:page]).per(@number_of_records_to_display)
        @tags = User.tag_counts_on(:tags, :limit => @number_of_tags_to_display, :order => "id desc")
...
end
4

2 に答える 2

2

あなたがしていることは正しく適切です。すべてではなく一部のアクションにのみ使用できるため、 before_filter で句のみを使用できます

before_filter your_method、のみ: [:show, :index]

また、初期化子を使用したり、環境ファイルで定数を定義したりすることもできます。コードやその他のヘルプが必要な場合はお知らせください。

初期化子を使用する場合、constants.rb というファイルで定数を定義し、それを config/initializers フォルダーに配置します。

この定数は、アプリを起動すると、アプリのどこでも使用できます。

于 2013-01-10T10:44:37.727 に答える
2

メソッドを定義する必要はありません。コントローラーの定数として定義できます

NUMBER_OF_RECORD_DISPLAY = 10
NUMBER_OF_TAGS_DISPLAY = 10

def index
...
        @users = User.find_by_username(params[:id]).all_following(order: 'updated_at DESC')
        @users = Kaminari.paginate_array(@users).page(params[:page]).per(NUMBER_OF_RECORD_DISPLAY)
        @tags = User.tag_counts_on(:tags, :limit => NUMBER_OF_TAGS_DISPLAY, :order => "id desc")
...
end
于 2013-01-10T10:45:47.623 に答える