我有我的學生表:更新不同領域的一列所有值形成(軌道3)
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><%[email protected][key].id%></td>
<td><%[email protected][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
它不會更新或值將不會更新到我已在collection_select
設置請幫我 ! 謝謝。
我試過了代碼,它給了我'未定義的方法每個無類'指向錯誤的控制器** update_year **行動 –
我已經知道了..在我的update_year動作中,我只在'student = Student.find(student [:id]'和'student.update_attributes(year:student [:year])'中加入'@''。在我的代碼...'@student = Student.find(student [:id]) @ student.update_attributes(year:student [:year])'.. –
你不需要這樣做。導致錯誤的'update_year'視圖模板中的'@ student'。 – jvnill