私は学生のテーブルに持っています:
id | fname | gname | course | year |
----------------------------------------
1| user 1| user 1| IT | 5 |
----------------------------------------
2| user 2| user 2| CompE | 3 |
----------------------------------------
3| user 3| user 3| Nursing| 2 |
私のコントローラーでは、 * HASHを使用して生徒の情報を表示しています*
def index
@students = Student.all
@studentlist = HASH.new
@students.each do |s|
@studentlist[s.id] = s
end
end
私のインデックスビューにはこれがあります
<%=form_tag "/students/update_year" do%>
<table>
<tr>
<th>id</th>
<TH>Family Name</TH>
<TH>Year</TH>
</tr>
<%@studentlist.each_key do |key|%>
<tr>
<td><%=@studentlist[key].id%></td>
<td><%=@studentlist[key].fname%></td>
<td><%=collection_select(:student,:year,Student.select('distinct year') , :year , :year ,:selected=>@studentlist[key].year %></td>
</tr>
<%end%>
</table>
<%=submit_tag("Update")%>
- 学生の年を変更して更新をクリックしたいのですが、更新すると年列のすべての値が変更され、同じ値になります。
この私のコントローラupdate_yearアクション:
def update_year
@students = Student.all
@studentlist = HASH.new
@students.each do |s|
@studentlist[s.id] = s
@studentlist.each_key do |key|
@student = Student.find(@studentlist[key].id)
@student.update_attributes(params[:student])
end
end
end
更新されないか、値が更新されずに I have set on mycollection_select
私を助けてください !ありがとうございました。