更改名稱屬性的視圖您選擇的標籤讓每個調查ID:
<%= select_tag "survey[#{s.id}][status]" ....
這將建立一個PARAMS結構是這樣的:
params = {:survey => {123 => {:status => 0}, 21 => {:status => 1}, 36 => {:status => 0}}}
其中123,21 & 36是調查對象的ID。然後,在你的控制器,你可以這樣做:如果你想別的編輯在表格內的調查
params[:survey].each do |survey_id, attributes|
if survey = Survey.find_by_id(survey_id)
survey.update_attributes(attributes)
end
end
,這很容易做到:例如,如果你想要編輯的名稱爲好,你可以只需添加
<td><%= text_field_tag "survey[#{s.id}][name]", s.name %></td>
會讓一個PARAMS結構像
params = {:survey => {123 => {:status => 0, :name => "foo"}, 21 => {:status => 1, :name => "bar"}, 36 => {:status => 0, :name => "baz"}}}
,你仍然有整齊地包含在一個單一的哈希調查的所有屬性。另一方面,調用諸如「s」之類的變量並不是一個好習慣,因爲它不會告訴讀者(將來可能包括你)它是什麼。 Rails慣例是在其類之後命名活動記錄對象,因此您會說
@surveys.each do |survey|
..etc
爲什麼使用'@survey.each do'? – asiniy