2017-03-07 89 views
-1

我已經根據散列條件檢索了一些記錄 - @special_products。現在我想把散列傳遞給同一個控制器的非寧靜動作(:spe​​cial),以便我可以查看這些產品。rails link_to - 將值的散列值傳遞給控制器​​動作

我試過這個,但link_to如何傳遞哈希值以及應該如何在action: special?中找到這個值在相同的products_controller中?非常感謝。

products_controller.rb

def show 
    @special_products = Product.by_company 
    end 

show.html.erb

<%= link_to "Special Products", special_path(:anchor => "#{@special_products}") %> 

回答

1
  1. 如果你打的產品控制器的表演動作,你應該呈現出產品

  2. 如果你想顯示一種特殊的方式產品,使用相同的show行動,但渲染它有不同的看法。

    def show 
        @product = Product.find(params[:id]) 
        render @product.special? ? 'special_show' : 'show' 
    end 
    
  3. 如果你想列出一些產品以不同的方式(過濾收集),要使用索引。例如。 products#index操作。

    def index 
        @products = Products.not_special 
        @special_products = Products.way_special 
    end 
    
    # app/views/products/index.html.erb 
    Special Products: 
    <%= @special_products.pluck(:name).to_sentence %> 
    
  4. 最後,注意參數傳遞給link_to結束了在所鏈接的URL,這意味着你的榜樣link_to將會呈現在href屬性類似#<Array []>

+0

考慮點(2)即使我渲染special_show.html.erb,我仍然沒有哈希中的記錄列表。基本上,我正在查看展示中的1款產品,並且下面有一個鏈接顯示「查看該公司的其他產品」,因此即使在呈現「特別展示」之後,我也丟失了當前產品的ID,以便展示其他產品公司。我不確定link_to是否可以提供幫助。現在關於點(3)@special_products包含所有選定的記錄,所以to_sentence將顯示逗號分隔....不確定,如果我有不同的理解。 – Means

+0

@Means如果你已經解釋了你在原始問題中想要做的事情,我會很高興地回答你的需求。你沒有,所以我不可能知道。請問一個新問題。 – coreyward

+0

我實際上對鐵軌和道歉很陌生,我無法說清楚。這裏有另一個問題 - http://stackoverflow.com/questions/42656720/rails-link-to-pass-id-from-show-to-another-controller-action。謝謝,如果你能給我一些想法。 – Means