公司模型有許多標籤並且有country_id字段。我想找到:在Ruby on Rails中的兒童模型中搜索
- 所有的公司,位於某縣
- 所有的公司,位於某縣並具有一定的標籤
if params[:tag]
存在。
第一個查詢是很容易
Company.where(:country_id => params[:country_id])
至於第二個,我嘗試了一些疑問並沒有什麼工作
companies = Company.where(:country_id => params[:country_id])
companies = Company.tags.where(:name=> params[:tag])
undefined method `tags' for #<Class:0x000000055dfb60>
如果我把
Company.tags.where(:name=> params[:tag])
則錯誤是一樣的
undefined method `tags' for #<Class:0x000000055dfb60>
在Rails控制檯中,命令Company.first.tags
接收所有標籤。
UPDATE:這個作品
Company.joins(:tags).where("tags.name = ?", query_hash[:tag])
但是我還不知道怎麼做這樣的事情
my_conditions = get_search_conditions
if query_hash[:tag].present?
companies = Company.all(:conditions => my_conditions).joins(:tags).where("tags.name = ?", query_hash[:tag])
else
companies = Company.all(:conditions => conditions)
end
的錯誤是
undefined method `all' for #<Array:0x007fbec8063e00>