嘿所有这些在我的代码中我只是重定向回所有主题的索引,理论上我想重定向回页面。
这是我此页面的控制器,现在我只是使用topics_path
作为支持。
class LikesController < ApplicationController
def index
end
def create
@bookmark = Bookmark.find(params[:bookmark_id])
like = current_user.likes.build(bookmark: @bookmark)
if like.save
flash[:notice] = "Successfully liked bookmark."
else
flash.now[:alert] = 'Error in liking bookmark. Please try again.'
end
redirect_to topics_path
end
def destroy
@bookmark = Bookmark.find(params[:bookmark_id])
like = current_user.likes.find(params[:id])
# Get the bookmark from the params
# Find the current user's like with the ID in the params
if like.destroy
flash[:notice] = "Successfully unliked bookmark."
else
flash.now[:alert] = 'Error in unliking bookmark. Please try again.'
end
redirect_to topics_path
end
end
这是我从耙路线到redirect_to
的路线
bookmarks_show GET /bookmarks/show(.:format) bookmarks#show
答案 0 :(得分:1)
如果您希望重定向回特定主题的页面...那么您需要将topic_id作为参数传递给您,以便您可以在重定向中使用它。
将其添加到您正在使用的表单/链接中,例如: (注意:完全做到这一点,显然你的代码会有所不同)
<% form_for @like do |f| %>
<%= f.hidden_field :topic_id, @topic.id %>
然后在您的创建操作中,您只需使用例如:
重定向 def create
@bookmark = Bookmark.find(params[:bookmark_id])
like = current_user.likes.build(bookmark: @bookmark)
if like.save
flash[:notice] = "Successfully liked bookmark."
else
flash.now[:alert] = 'Error in liking bookmark. Please try again.'
end
redirect_to topic_path(:id => params[:topic_id])
end
注意:如果你想使用其他一些页面(例如书签页面),那么请使用它......这是一个“一般的指南”,而不是“完全按照你在这里看到的那样使用这个代码”:)