JSON を使用してモデルを更新しようとしています。現在、put メソッドを実行することができます。
私のブラウザ コンソールから、これが表示されるので、私のリクエストは通ったと思います。
PUT http://localhost:3000/slot_allocations/1 [HTTP/1.1 200 OK 7ms]
ただし、更新したいデータをRailsに受け入れる方法がよくわかりません。誰かが私を助けてくれれば幸いです。
これは、Ajax リクエストの Jquery コードです。dataToServer は、モデルを更新するために送信したいデータです。
var url = 'slot_allocations/'+alloc_id;
var dataToServer = {slot_allocation:{timeslot:timeslot, subject:subject,slot_allocation_id:alloc_id-1, group_id:"Group 2", lesson_type:"Tutorial"}}
$.ajax({
type: "PUT",
url: url,
dataType: "json",
data: JSON.stringify(dataToServer) , // message to send goes here
success: function (data)
{
}
});
コントローラーの update メソッドには、次のコードがあります。
def update
@slot_allocation = SlotAllocation.find(params[:id])
respond_to do |format|
if @slot_allocation.update_attributes(params[:slot_allocation])
format.html { redirect_to @slot_allocation, notice: 'Slot allocation was successfully updated.' }
format.json { render :json=>@slot_allocation.as_json }
else
format.html { render action: "edit" }
format.json { render json: @slot_allocation.errors, status: :unprocessable_entity }
format.js { render :js => @slot_allocation.errors, :status => :unprocessable_entity }
end
end
end
これが私の as_json メソッドです。サーバーからクライアント側への送信要求に使用していますが、同じ方法を使用してクライアントからサーバー側に情報を送信できるかどうかはよくわかりません。
def as_json(options={})
{
:group_id =>self.group_index,
:lesson_type =>self.lesson_type,
:timeslot =>self.timeslot_id,
:subject =>self.subject_id,
:slot_allocation_id => self.slot_allocation_id
}
end
モデルを更新するためにRailsにパラメータを受け入れさせる方法にあまり慣れていないので、誰かが私を案内してくれれば幸いです。