link_to 'articles', articles_path, :attr1 => 'foo', :attr2 => 'bar'
和Controller:當屬性爲零時,如何避免使用動態查找器?
Article.find_all_by_attr1_and_attr2(params[:attr1], params[:attr2])
但是,如果控制器接收唯一[:attr1]
我得到一個零。
link_to 'articles', articles_path, :attr1 => 'foo', :attr2 => 'bar'
和Controller:當屬性爲零時,如何避免使用動態查找器?
Article.find_all_by_attr1_and_attr2(params[:attr1], params[:attr2])
但是,如果控制器接收唯一[:attr1]
我得到一個零。
如果某些發現者實際上並不存在,動態發現者可能不是正確的選擇。在這種情況下,你就要去使用Article.find(:all, :conditions => {})
on Rails的2 Article.where()
on Rails的可能會更好3.
這是我想出了一個方法,另一個問題而回:
conditions = [:attr1, :attr2].inject({}) do |hsh, field|
hsh[field] = params[field] if params[field] && params[field].present?
hsh
end
# Rails 2
@articles = Article.find(:all, :conditions => conditions)
# Rails 3
@articles = Article.where(conditions)
在上述情況下,你可以遍歷數組中的所有字段,並將它們中的每一個添加到生成的哈希中,如果它在params
中並且不是空的。然後,你將散列傳遞給查找器,並且一切都很好,很花哨。
你先生是我的英雄謝謝! – elkalto23 2011-01-21 00:19:36
那麼你會怎麼做呢?沒有足夠的信息來有效回答這個問題。 – 2011-01-21 00:05:45