2013-01-10 17 views
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 
+0

的before_filter是做一個控制器,或在初始化定義和使用它們作爲常量正確的方法。 – abhijit

+0

謝謝!你怎麼做呢?你可以在Asnwer給我看一個例子嗎? – cat

+0

沒有@需要實例變量,什麼薩欽建議是適當的,或者你有一個intialiser文件,並把所有的常量會有易於管理 – abhijit

回答

2

你在做什麼是正確的和適當的,因爲你可能在某些操作只能使用並非都是如此,你只能使用條款與before_filter,來

的before_filter your_method只有:[:秀:指數]

但你也可以使用初始化器,或在您的環境文件中定義的常量。讓我知道你是否需要代碼或更多的幫助。

如果使用初始化器,你可以在一個文件中定義的常量說constants.rb並將其放置在配置/初始化文件夾中,該文件只是 PAGE_SIZE = 10 TAG_COUNT = 10,

這個常數一旦你啓動應用程序,將在你的應用程序的任何地方都可用

+0

是的,我想知道如何做,在初始化 – cat

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 
+0

我想你的方式,但它說這個錯誤'未定義的局部變量或方法'number_of_tags_to_display」爲#' – cat

+0

我需要變量之前把@ ???? – cat

+0

你能檢查我得到的錯誤嗎? – cat

相關問題