私のビューには、ajax 経由で以下のメソッドを呼び出すリンクがあります。私は基本的に 経由@application.update_attributes(params[:application])
で挿入されたレコードの ID を取得しようとしていますが、 を呼び出すと@curr_app = @application.application_field.last
、ajax 呼び出しの前に挿入された最後のレコードが返されます。
たとえば、最初にページにアクセスして、application_fields テーブルの最高の ID が 50 であると言った場合、ajax リンクをクリック@curr_app.id
すると、何回 ajax リンクをクリックしても、常に 50 になります。
@application.application_field.last
データベースの最後のレコードを取得する必要があると思いましたか? 最後に挿入されたレコードを取得するにはどうすればよいですか? 再クエリする必要がありますか?
# PUT /applications/1
# PUT /applications/1.json
def update
@application = Application.find(params[:id])
respond_to do |format|
if @application.update_attributes(params[:application])
@curr_app = @application.application_field.last
puts @curr_app.id
format.html { redirect_to @application, notice: 'Application was successfully updated.' }
format.json { head :no_content }
format.js
else
format.html { render action: "edit" }
format.json { render json: @application.errors, status: :unprocessable_entity }
format.js
end
end
end