我的文章可以出现在多个网站上,以及带有标题,正文等的文章模型以及带有site_id,site_name等的网站模型,我有一个article_site_permission模型,带有article_id,site_id和visible,可以是无论是真还是假。
在我的文章编辑页面上,我已经完成了一个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?
答案 0 :(得分:2)
在您的控制器中,重定向到您想要的操作(索引,显示等)。做一个
respond_to do |format|
format.js
end
在你的控制器中的那个动作下。然后,在相应的视图中,有一个名为
的文件index.js.erb
或者用任何动作替换索引,只要确保给它命名与调用它的动作相同。
修改
我还应该提到你在按钮上添加远程true是正确的。从您的问题中很难说出您试图在哪个控制器中达到的操作。如果您正在尝试访问ArticleSitePermission控制器的show动作,那么您的表现非常好。但是,看起来你似乎没有尝试路线显示。 Check out this link for more info on routing to different actions.
编辑2
这应该这样做。
<%= link_to 'Click me', {:controller => "article", :action => "update", :id => @article_site_permission_id },
:remote => true %>
此外,如果你想要做的只是重定向到文章,你不需要做js。只需重定向到文章#show