2015-11-17 4 views
0

Итак, у меня есть пользователи, которые отмечают избранные сообщения. Я пытаюсь настроить индекс, чтобы показывать только любимые сообщения.Передача параметров контроллеру

Мой контроллер индекса выглядит следующим образом

def index 
    require 'soundcloud' 
    @streamid = '?client_id=7e24fb69b20b922b683870511ae8d2d1' 
    @client = Soundcloud.new(:client_id => '7e24fb69b20b922b683870511ae8d2d1') 
    if params[:search] 
    @posts = Post.search(params[:search]).order("created_at DESC") 
    elsif params[:genre] 
    @posts = Post.tagged_with(params[:genre]).order("created_at DESC") 
    elsif params[:favorites] 
    @posts = Post.first 
    else 
    @posts = Post.reorder('votes desc').find_with_reputation(:votes, :all).first(10) 
    end 
end 

Моя кнопка link_to выглядит следующим образом

<li><%= link_to ("<i class='glyphicon glyphicon-heart'></i> My Favorites").html_safe, root_path(:param => :favorites) %></li> 

же адрес для

http://localhost:3000/?param=favorites

Но страница не обновляется до переменной @posts в контроллере.

Что мне нужно сделать?

Заранее спасибо.

ответ

1

Просто нужно два шага:

  1. изменить свой параметр в виду:

    <li><%= link_to ("<i class='glyphicon glyphicon-heart'></i> My Favorites").html_safe, root_path(:favorites => 1) %></li>

    Он будет генерировать ссылку на http://localhost:3000/?favorites=1

  2. В контроллере, проверьте параметр «избранное» в виде строки. Заменить строку

    elsif params[:favorites]

    с

    elsif params[:favorites].present? and params[:favorites].to_s == '1'

+0

Удивительный Ян! Спасибо за помощь. Отметится как правильно после 3-минутного таймера. –

+0

@MattThomas Спасибо, человек! – Yang

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