2010-07-03 72 views
0

問題: 我有一個人的集合,我想要一個revise.html頁面,允許我在所有人中增加一個整數。想要在Rails中修改我的更新方法,但REST限制我

如果我在people_controller中創建了一個新方法,它會自動將我發送給人/修改..它被解釋爲show/revise ...這不是一個id。

我知道這是因爲REST收縮。但我真的不知道應該如何對所有記錄進行更新。

我是否要爲修訂版修訂製作新的控制器?或者我修改了people_controller中的update方法。

這裏是我的revise.html.erb一些代碼:

<h1>Update the All Bio's Revision'</h1> 

<% form_for(@people) do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :version %><br /> 
    <%= f.text_field :version %> 
    </p> 
    <p> 
    <%= f.submit "Update Revision" %> 
    </p> 
<% end %> 

<%= link_to 'Back', people_path %> 

我想這再從文本字段提交PARAM並更新所有的人

@people = Person.find(:all) 

@people.each do |person| 

person.version = params(:version) 

end 

是的,我只是不知道我是否得到這種軌道2等新的語法。

感謝任何幫助大家!

回答

1

因此,您正在檢索所有帖子,然後逐個設置版本屬性(並忘記保存它們)。你最好使用Person.update_all。讓數據庫爲您做好工作。

至於控制器操作,只要你不會爲它發瘋而對標準RESTful 7添加額外操作沒有任何壞處。這只是意味着「修改」就像一個保留關鍵字;任何人都無法將其作爲他/她的身份證件。您也可以將表單粘貼到「索引」操作的底部。

+0

感謝您的回答 – theprojectabot 2010-07-07 21:12:23

2

如果發生在一羣人身上,那麼它屬於人控制器。您可以通過修改你的資源這樣的定義來的人集合的路線:

map.resources :people, :collection => { :revise => :post } 

docs for adding a collection to your route

+0

感謝您的鏈接和文本。 – theprojectabot 2010-07-07 21:12:39

相關問題