ruby on rails -我应该在哪里存储在同一个控制器中常用的变量



现在我就是这样做的。这是正常的吗?
或者有没有其他更流行的方式来做这件事?

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

不需要定义方法,可以定义为控制器的常量

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

您所做的是正确和适当的,因为您可能只使用某些操作而不是全部,因此您可以使用before_filter

的only子句

before_filter your_method, only: [:show,:index]

,也可以使用初始化器,或者在环境文件中定义常量。如果您需要代码或更多帮助,请告诉我。

如果使用初始化式,你可以在文件中定义你的常量为常量。并把它放在config/initializers文件夹中,在那个文件中有Page_size = 10TAG_COUNT = 10,

一旦你启动应用程序,这个常量将在应用程序的任何地方可用。

相关内容

  • 没有找到相关文章