我想试试我的js.erb是否有效?
这里我的帖子/索引要触发
<%= link_to "Like", {:controller => 'post', :id => post , :action =>'like'}, class: "btn btn-danger btn-xs", remote: true %>
我的帖子控制器
def like
@user = current_user
@post.liked_by(@user)
redirect_to posts_path
respond_to do |format|
format.html {redirect_to posts_path}
format.js { render :action => 'stablelike' }
end
end
这是我的js.erb来测试
alert("working");
这是我的错误:当我检查我的Chrome时
在此操作中多次调用渲染和/或重定向。请注意,您只能调用渲染或重定向,每次操作最多一次。另请注意,重定向和呈现都不会终止执行操作,因此如果要在重定向后退出操作,则需要执行类似“redirect_to(...)并返回”的操作。
``` ruby
78 @user = current_user
79 @post.liked_by(@user)
80 redirect_to posts_path
81 respond_to do |format|
82 format.html {redirect_to posts_path}
83 format.js {render:action =&gt; '稳定''} 84个
85结束 86结束 87
答案 0 :(得分:3)
在控制器操作中,render
和redirect_to
都不会停止执行操作。这就是你获得DoubleRenderError
的原因。删除第一个redirect_to
,一切都应该没问题。
def like
@user = current_user
@post.liked_by(@user) # I am unsure what you're trying to accomplish here
respond_to do |format|
format.html { redirect_to posts_path }
format.js { render :stablelike }
end
end
如果这不起作用,可能您尚未设置stablelike
操作来响应xhr
请求。你可以通过
def stablelike
respond_to do |format|
# other formats
format.js # by default looks for `stablelike.js.erb`
end
end