使用标准update
操作结合remote
表单,用户通过AJAX提交一小部分数据,然后以javascript的形式发送到操作,并使用javascript呈现响应format.js
。
def update
@message = Message.where("recipient_id = ? AND id = ?", current_user.id, params[:id]).first
respond_to do |format|
if @message.update_attributes(params[:message])
format.html { redirect_to(@message, :notice => 'Message updated.') }
format.xml { head :ok }
format.js
else
format.html { render :action => "edit" }
format.xml { render :xml => @message.errors, :status => :unprocessable_entity }
format.js
end
end
end
这将生成一个名为update.js.erb
的JS文件,我用它来呈现文本和效果,以向用户显示操作是否成功。
如何检查update.js.erb是否保存该记录?
目前,我在控制器中做了一个非常不优雅的@success = true
,我在js.erb文件中测试它以决定要渲染的文本/效果。必须有更好的方法。
答案 0 :(得分:0)
你好用这个:
<% if @message.errors.empty? %>
SUCCESS
<% else %>
FAIL_CODE
<% end %>
我希望这会有所帮助。