2013-03-30 162 views
0

在控制器如何通過link_to傳遞params參數?

class FeedEntriesController < ApplicationController 
    def index 
    @search = FeedEntry.search(params[:is_star]) 
    @feed_entries = @search.page(params[:page]) 
    @app_keys = AppKey.all 
    end 
end 

在View - feed_entries/index.html.erb

<%= link_to "Stared", {:controller => "feed_entries", :action => "index", :is_star => false } %> 

feed_entries表包含is_star:boolean屬性。所以,我只想將參數is_star == true傳遞給params[:is_star]

但上述代碼不起作用。請有人幫助我。

如果我點擊Stared鏈接。我在瀏覽器中獲取錯誤象下面這樣:

undefined method `stringify_keys!' for "false":String 
+0

你嘗試引用false? - 即:':is_star =>「假」 – house9

+0

你得到相同的錯誤 –

+0

你應該包括你的錯誤stacktrace - 我的猜測,它來自'FeedEntry#search'方法? – house9

回答

1

它看起來像你的FeedEntry#搜索方法預計響應#stringify_keys一個說法!方法,所以我想你應該通過一個Hash:

link_to 'Stared', feed_entries_path 

讀:

@search = FeedEntry.search(is_star: params[:is_star]) 

BTW與「控制器」和「動作」選項的舊的和詳細的語法,你應該使用一個足智多謀的風格LINK_TO更多這裏:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to