所以我正在制作一个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方法,那么你做错了。什么是更合适的方式呢?
答案 0 :(得分:0)
只需更改此
old_issues += $.parseJSON(<%= @issue.to_json =>);
到这个
old_issues = old_issues.concat(<%= raw @issue.to_json %>);
JS自动将json转换为object。