0

我的文章可以出现在多个站点上,还有一个带有标题、正文等的文章模型和一个带有 site_id、site_name 等的站点模型,我有一个 article_site_permission 模型,带有 article_id、site_id 和可见,可以是 true 或错误的。

在我的文章编辑页面上,我做了一个 button_to:

<%= button_to 'Hide', article_site_permission_path(:id => @article_site_permission_id, :article_site_permission => {:visible => "false"}), :method => :put %>

这有效 - 它将权限更改为 false。我可以显示相反的显示按钮。

现在我想通过添加:remote => true到按钮链接来刷新其中包含按钮的 div。但是我在哪里放我的javascript?

它是否在 article_site_permission 视图中 - 即使我正在查看文章本身的视图?它被称为 update.js.erb 吗?

谢谢你的帮助。


为清楚起见更新。

我的按钮在文章/编辑页面上。该按钮更新 article_site_permissions。我想返回文章/编辑并刷新其中包含按钮的 div。

我必须为 article_site_permissions 编辑更新控制器,但是我在哪里放 js 来刷新 div?

4

1 回答 1

2

在您的控制器中,重定向到您想要的操作(索引、显示等)。做一个

respond_to do |format|
  format.js
end

在您的控制器中的该操作下。然后,在相应的视图中,有一个文件名为

index.js.erb

或者用任何动作替换索引,只要确保给它起与调用它的动作相同的名称。

编辑

我还应该提到您在按钮上添加远程 true 是正确的。很难从您的问题中看出您要在哪个控制器中执行什么操作。如果您尝试访问 ArticleSitePermission 控制器的显示操作,那么您做得很好。但是,您似乎并没有尝试路由显示。查看此链接以获取有关路由到不同操作的更多信息。

编辑 2

这应该这样做。

<%= link_to 'Click me', {:controller => "article", :action => "update", :id => @article_site_permission_id },
      :remote => true %>

另外,如果你只想重定向到文章,你不需要做js。只需重定向到文章#show

于 2012-02-06T15:44:22.110 回答