是否可以在 RJS 文件中使用 ruby 代码?
例如,destroy.js.rjs
文件
if @template == "viewer"
page["viewing_registry_#{@viewer_registry.id}"].replace_html :partial => "shared/request_viewer_link"
else
page["viewer_#{@viewer.id}"].visual_effect :DropOut, :duration => 2.0
flash.discard
end
这是从销毁操作调用的 RJS 文件,该操作具有
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 代码。有任何想法吗?还是我完全做错了?
谢谢!