Ruby on rails Rails-可以在RJS文件中使用ruby代码吗?
可以在RJS文件中使用ruby代码吗 例如,destroy.js.rjs文件 这是从具有Ruby on rails Rails-可以在RJS文件中使用ruby代码吗?,ruby-on-rails,ajax,rjs,Ruby On Rails,Ajax,Rjs,可以在RJS文件中使用ruby代码吗 例如,destroy.js.rjs文件 这是从具有 def destroy @viewer = Viewer.find(params[:id]) @viewer_registry = Registry.find(@viewer.registry_id) @viewer.destroy flash[:notice] = "Viewer deleted" @template = params[:template]
def destroy
@viewer = Viewer.find(params[:id])
@viewer_registry = Registry.find(@viewer.registry_id)
@viewer.destroy
flash[:notice] = "Viewer deleted"
@template = params[:template]
params[:template] = nil
respond_to do |format|
format.html { redirect_to registry_path(@viewer_registry) }
format.js
end
end
因此,在AJAX调用中,RJS文件用于响应,它根据调用销毁操作的模板给出不同的响应
此时,AJAX调用被发出,记录被销毁,然后什么都不会发生,不管哪个模板调用销毁操作。
所以我想知道它是否仅仅因为我不能在RJS文件中使用ruby代码而不起作用。有什么想法吗?还是我完全做错了
谢谢 对,我重新定义了destroy函数,使其看起来像这样:
def destroy
#is this bad because its not linked to current_user?
#how would you even set it to be relational to current_user?
@viewer = Viewer.find(params[:id])
@viewer_registry = Registry.find(@viewer.registry_id)
@viewer.destroy
flash[:notice] = "Viewer deleted"
respond_to do |format|
format.html { redirect_to registry_path(@viewer_registry) }
format.js {
if params[:template] == "viewer"
render :action => "viewer_destroy.js.rjs"
else
render :action => "destroy.js.rjs"
end
}
end
end
所以我有2个RJS文件,根据传入的模板名使用不同的文件。
耶
def destroy
#is this bad because its not linked to current_user?
#how would you even set it to be relational to current_user?
@viewer = Viewer.find(params[:id])
@viewer_registry = Registry.find(@viewer.registry_id)
@viewer.destroy
flash[:notice] = "Viewer deleted"
respond_to do |format|
format.html { redirect_to registry_path(@viewer_registry) }
format.js {
if params[:template] == "viewer"
render :action => "viewer_destroy.js.rjs"
else
render :action => "destroy.js.rjs"
end
}
end
end