Rails6中保存模型到DB后如何执行JS?
How to execute JS after saving a model in DB in Rails 6?
我是 Rails 初学者,我对这个非常简单的问题有点不知所措。我想做这样的事情:
- 用户填写表格。
- 点击提交按钮
- 模型已保存到数据库中。
- 如果保存操作成功,执行javascript.
问题是:如何在 Rails 6 中以最佳方式完成该任务?我应该使用 .js.erb
个文件吗?还是我应该 javascript 放入 webpacker?
到目前为止,我尝试了以下代码,但没有成功:
controller/jobs_controller.rb
def create
@job = current_user.jobs.build(job_params)
respond_to do |format|
if @job.save
format.html { redirect_to @job, notice: 'Success!' }
format.js {}
else
format.html { render :new }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
end
views/jobs/create.js.erb
alert('hello');
正如@max-pleaner 所指出的,我在 form
标签中遗漏了 remote: true
。
我是 Rails 初学者,我对这个非常简单的问题有点不知所措。我想做这样的事情:
- 用户填写表格。
- 点击提交按钮
- 模型已保存到数据库中。
- 如果保存操作成功,执行javascript.
问题是:如何在 Rails 6 中以最佳方式完成该任务?我应该使用 .js.erb
个文件吗?还是我应该 javascript 放入 webpacker?
到目前为止,我尝试了以下代码,但没有成功:
controller/jobs_controller.rb
def create
@job = current_user.jobs.build(job_params)
respond_to do |format|
if @job.save
format.html { redirect_to @job, notice: 'Success!' }
format.js {}
else
format.html { render :new }
format.json { render json: @job.errors, status: :unprocessable_entity }
end
end
end
views/jobs/create.js.erb
alert('hello');
正如@max-pleaner 所指出的,我在 form
标签中遗漏了 remote: true
。