2016-07-20 2 views
0

Эй, все так в моем коде, я просто перенаправляюсь обратно к индексу всех тем, и теоретически я хотел бы перенаправить обратно на страницу.
это мой контроллер для этой страницы, прямо сейчас я просто использовать 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

+1

Можете ли вы поделиться 'index' метод в' TopicsController' – SpunkyLive

+0

'Защиту index'
' @topics = Topic.all'
'санкционирования (@topics)' '
end'
Я не уверен, почему мой синтаксис уценки не работает правильно. – SinGar

ответ

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 

Примечание: если вы хотите использовать какой-либо другой страницы (например, закладки страниц), а затем использовать это вместо того, чтобы ... это «вообще HOWTO» не «использовать этот код в точности так, как вы видите это здесь »)

Смежные вопросы