collection_selectリストのデータを取得しようとしています。
詳細
関係する4つのテーブルがあります
volunteers
has_many :signed_posts
has_many :posts, :through=>:signed_posts
signed_posts
belongs_to :volunteer
belongs_to :post
posts
belongs_to :organization
has_many :signed_posts
has_many :volunteers, :through=>:signed_posts
organizations
has_many :post
プレーンSQLで書く必要があるとしたら、以下のようになります。このSQLはpostgreSQL用です。Rails3.2.1の構文を書きたいと思います。
Select sp.id,p.title ||'-'|| o.name AS project from signed_posts sp
inner join volunteers v on v.id=sp.volunteer_id
inner join posts p on p.id=sp.post_id
inner join organizations o on o.id=p.organization_id
where v.id=1
結果として、ボランティアID1のsigned_posts.idとposts.title--organizations.nameを取得したいと思います。
ドロップダウンリストで使用したいものです。
ご助力ありがとうございます
私の解決策
このようなハッシュテーブルを使って問題を解決しました
@signed_projects=Volunteer.find(1).signed_posts.joins(:post)
@ddl_test=Hash.new
@signed_projects.each do |signed_project|
ddl_test[signed_project.post.title+"-"+signed_project.post.organization.name]=signed_project.id
end
表示中
<%=select_tag 'ddl_test',options_for_select(@ddl_test.to_a),:prompt => 'Please select the project'%>