link_to 'articles', articles_path, :attr1 => 'foo', :attr2 => 'bar'
とコントローラで:属性がnilとなったときに動的検索でnilを避けるにはどうすればよいですか?
Article.find_all_by_attr1_and_attr2(params[:attr1], params[:attr2])
ただし、コントローラは、私はnilを得るだけ[:attr1]
受信した場合。
link_to 'articles', articles_path, :attr1 => 'foo', :attr2 => 'bar'
とコントローラで:属性がnilとなったときに動的検索でnilを避けるにはどうすればよいですか?
Article.find_all_by_attr1_and_attr2(params[:attr1], params[:attr2])
ただし、コントローラは、私はnilを得るだけ[:attr1]
受信した場合。
実際に存在しないファインダがある場合、ダイナミックファインダは適切な方法ではない可能性があります。
上記の場合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)
:この場合、あなたはおそらく、Railsの3
にレール2とArticle.where()
にArticle.find(:all, :conditions => {})
を使用すると、ここで私はしばらく前に別の質問のために思い付いた方法だ方がいいでしょう配列のすべてのフィールドをループし、結果がハッシュに含まれていればそれをそれぞれ追加します。空でない場合はparams
になります。次に、ハッシュをファインダに渡すと、すべてがうまくやっています。
あなたは私の英雄の感謝です! – elkalto23
その場合、あなたは何をしますか?この質問に効果的に答えるには十分な情報がありません。 –