Rails:ajax表单提交返回新对象

时间:2014-06-16 20:11:13

标签: javascript jquery ruby-on-rails ajax

所以我正在制作一个rails网站。我有一个远程form_for标记,当我单击提交按钮时,通过ajax调用创建一个新问题。我希望rails应用程序将新问题添加回浏览器javascript变量,问题集合。 现在我有

----issues_controller.rb-----
def create
    @issue = @project.issues.new(issue_params)
    @issue.user_id = current_user.id

    respond_to do |format|
      if @issue.save
        format.html { redirect_to [@project, @issue], notice: 'Issue was successfully created.' }
        format.js
        format.json { render :show, status: :created, location: @issue }
      else
        format.html { render :new }
        format.json { render json: @issue.errors, status: :unprocessable_entity }
      end
    end
  end

----create.js.erb----
var old_issues = $('#issues').data('issues');
old_issues += $.parseJSON(<%= @issue.to_json =>);

我听说如果你使用to_json方法,那么你做错了。什么是更合适的方式呢?

1 个答案:

答案 0 :(得分:0)

只需更改此

old_issues += $.parseJSON(<%= @issue.to_json =>);

到这个

old_issues = old_issues.concat(<%= raw @issue.to_json %>);

JS自动将json转换为object。