检查记录是否保存在JS中

时间:2011-05-18 21:40:33

标签: javascript ruby-on-rails ruby-on-rails-3 jquery

使用标准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文件中测试它以决定要渲染的文本/效果。必须有更好的方法。

1 个答案:

答案 0 :(得分:0)

你好用这个:

<% if @message.errors.empty? %>
  SUCCESS
<% else %>
  FAIL_CODE
<% end %>

我希望这会有所帮助。