我試圖對某些控制器代碼進行更改。但是,我不明白該把它放在哪裏。Rails關聯 - 執行哪些控制器代碼?
我有一個新的聯繫人窗體如下:
<%= f.association :location, :label_method => :name, :label => 'Location:' %>
我假定代碼將在該位置的控制器執行的指數代碼。
但是,我剛剛刪除了位置索引中的所有代碼,並且與位置關聯的聯繫人表單中仍然有數據。
我想下面的代碼在聯繫人關聯語句執行,但我不知道在哪裏把它:
@locations = Location.ordered_by_ancestry_and(:name).map { |l| [" " * l.depth + l.name, l.id] }
UPDATE1
這是development.log
Processing by ContactsController#new as HTML
Location Load (0.2ms) SELECT "locations".* FROM "locations" ORDER BY (case when locations.ancestry is null then 0 else 1 end), locations.ancestry, name
UPDATE2
我更改了ContactsController#new以進行測試:
# GET /contacts/new
# GET /contacts/new.json
def new
@locations = Location.first
而我仍然在選擇框中的所有位置。
控制器代碼只會得到執行,並且,只有當一個鏈接之後或形式發佈情況。你是什麼意思「執行索引代碼」?你是否遵循'log/development.log'說什麼控制器方法正在執行? – tadman 2013-05-06 15:27:54