我正在尝试使用remote true
向控制器执行 ajax 提交,该控制器将运行创建操作,然后在 ajax 成功时,执行一些 javascript 来删除该行。
这看起来很简单,但是 Rails 让它变得很困难。
我的设置是这样结束的:
形式
= form_tag modifications_url, class: "inline", remote: true do |f|
= hidden_field_tag :id, modification.model.id
= submit_button "Reject", class: 'btn btn-danger'
修改_控制器
class ModificationsController < NestedController
belongs_to :app_group, :app, :organization
respond_to :html, :js
def index
@modifications = ModificationDecorator.decorate(get_modifications).group_by(&:what_was_modified)
end
def create
@modification = Modification.find(params[:id])
authorize!(:approve, @modification)
if params[:resolution] == 'accept'
result = @modification.accept(current_user, params[:reason])
elsif params[:resolution] == 'reject'
result = @modification.reject(current_user, params[:reason])
end
end
现在 - 根据我正在阅读的文档,通过在修改视图文件夹中放置一个与操作(创建)同名的 .js.erb 文件,它应该在成功的 ajax 调用之后运行该代码。
所以在我的create.js.erb
文件中我尝试了一个警报
alert('testing')
当我点击提交按钮时运行!耶!
但是,当我换掉警报时,console.log($(this))
我得到了一些疯狂的结果,比如window
和其他不引用单击的 css 类的东西。
我在这里做错了吗?提前致谢。