2017-03-10 14 views
0

私のメインビューには私のレールアプリに3つのリンクがあり、ユーザーがクリックしたリンクに応じて異なるデータをインデックスビューに表示します:link_toにhtml値を渡して、コントローラの値をレールで取得します

def index 
    if linkname == "cunas" then 
     @product = Product.where(:type == 'cunas') 
    elsif linkname == "accesorios" then 
     @product = Product.where(:type == 'accesorios') 
    elsif linkname == "ropa" then 
     @product = Product.where(:type == 'ropa') 
    end 
end 

私はレールのコントローラで使用することができますonClick機能や.clickがあります:

<%= link_to 'Explorar', url: index_page_url, :name => 'cunas'%> 
<%= link_to 'Explorar', url: index_page_url, :name => 'accesorios'%> 
<%= link_to 'Explorar', url: index_page_url, :name => 'ropa'%> 

は、だから、コントローラに私はこのような何かを行うことができますか?

type == cunasを含むすべての製品を保存するのに十分なProduct.where(:type == 'cunas')もあります。@product

答えて

1

最初のlink_to

はこれを試してみてください。

link_to 'Explorar', {url: index_page_url(type: :ropa)}, :name => 'ropa' 
link_to 'Explorar', {url: index_page_url(type: :accesorios), :name => 'accesorios' 
link_to 'Explorar', {url: index_page_url(type: :ropa)}, :name => 'ropa' 

のlink_toの署名がある

def index 
    type = params[:type] 
    Product.where(type: type) 
end 

あなたのコントローラで、その後

(私はここでは省略あなたのerbタグを忘れないでください)

link_to(body, url_options = {}, html_options = {}) 

したがって、型をパラメータとしてコントローラに渡し、値をパラメータからフェッチして戻したいとします。コントローラのコードによっては、強いパラメータに型を追加する必要があるかもしれません。

関連する問題