现在我就是这样做的。这是正常的吗?
或者有没有其他更流行的方式来做这件事?
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,
一旦你启动应用程序,这个常量将在应用程序的任何地方可用。