2016-07-01 2 views
-1

Как перечислить на домашней странице только challenges с тем же categorization, если пользователь нажимает на значок, представляющий это categorization?Как перечислить объекты на одной странице с тем же атрибутом?

enter image description here

вид

<%= link_to categorization_path(categorization: :adventure) do %>  
    <span class="glyphicon glyphicon-picture", id="challenge-category"></span> 
<% end %> 
<%= link_to categorization_path(categorization: :health) do %>  
    <span class="glyphicon glyphicon-heart", id="challenge-category"></span> 
<% end %> 
<%= link_to categorization_path(categorization: :work) do %>  
    <span class="glyphicon glyphicon-briefcase", id="challenge-category"></span> 
<% end %> 
<%= link_to categorization_path(categorization: :buy) do %>  
    <span class="glyphicon glyphicon-shopping-cart", id="challenge-category"></span> 
<% end %> 
<%= link_to categorization_path(categorization: :wacky) do %>  
    <span class="glyphicon glyphicon-wine-glass", id="challenge-category"></span> 
<% end %> 

Если пользователь нажимает на выше link_to то, что указывать только вызовы с этой соответствующей categorization.

routes.rb

get ":categorization", to: "pages#home", as: 'categorization' 

pages_controller.rb

def home 
@challenges = current_user.challenges.send(params[:categorization]).order("deadline ASC") 
end 

challenge.rb

CATEGORIZATION = ['adventure', 'health', 'work', 'buy', 'wacky'] 
scope :adventure, -> { where(categorizations: 'Adventure') } 
scope :health, -> { where(categorizations: 'Health') } 
scope :work, -> { where(categorizations: 'Work') } 
scope :buy, -> { where(categorizations: 'Buy') } 
scope :wacky, -> { where(categorizations: 'Wacky') } 
+1

какие ошибки вы получаете? – potashin

+0

'TypeError (nil не является символом):' @potashin для строки в контроллере –

ответ

0

Я нуждался в быть исключительным:

scope :adventure, -> { where(categorization: 'adventure') } 
    scope :health, -> { where(categorization: 'health') } 
    scope :work, -> { where(categorization: 'work') } 
    scope :buy, -> { where(categorization: 'buy') } 
    scope :wacky, -> { where(categorization: 'wacky') } 
+0

Рассмотрите возможность принятия собственного ответа: http://blog.stackoverflow.com/2009/01/accept-your-own-answers/ – SoAwesomeMan