これで、生徒が利用可能なアポイントメントのテーブルから教授とのアポイントメントを選択できるようにしようとしています。 「選択」を押すと、テーブルからすべてのappointment_idが取得され、選択した予定を示すテーブルの最初の番号が入力されます。したがって、予定ID5を選択する代わりに、2、4、5、6が選択されます。次に、選択された予定表に2が入力されます。私がそれをしたいのは、私が実際に選んだ予定を選ぶことです。 HERE1つのアポイントメントの代わりにアポイントメントの配列を選択しています
は(私は必要なコードを含むよ)MY appointments_available図である:HERE
<% @appointment.each do |appointment|%>
<tr>
<td><%= appointment.professor_id %></td>
<td><%= appointment.student_id %></td>
<td><%= appointment.timeslot %></td>
<td><%= link_to 'Choose', :controller => "appointments", :action => "student_edit", :id => @appointment %></td>
</tr>
<% end %>
は予定コントローラは(再び、すべてのコードがある)IS:
def appointments_available
@appointment = Appointment.find_all_by_student_id("")
end
def student_edit
@appointment = Appointment.find_by_id(params[:id])
@appointment.update_attribute(:student_id, session[:student].user_id)
end
任意のヘルプが評価されます
'config/routes.rb'で宣言された適切なリソースルートを使用し、REST-ful命名規則を使用してデフォルトに準拠させることは、通常、よりクリーンです。例えば、これは、Rails 1スタイルのコントローラとアクション宣言の代わりに 'appointment_path(@appointment)'とすることができます。また、GETメソッドを使用してレコードを更新することは、おそらく非常に悪い考えです。そのようなリンクを先読みし、すべてをひどく締めるからです。できるだけ ':method =>:post'を使ってください。 – tadman