好吧,所以我已经研究了一段时间了,似乎无法弄明白。我已经在guides.rubyonrails.org上广泛阅读,这就是我如何开始的。我成功创建了以下HTML代码。
<tr>
<th><%= f.label(:language_needs) %></th>
<td><%= f.collection_check_boxes(:language_need_ids, LanguageNeed.all, :id, :theneed) %></td>
</tr></br>
<tr>
<th><%= f.label(:type_projects) %></th>
<td><%= f.collection_select(:type_project_ids, TypeProject.all, :id, :thetype) %></td>
</tr></br>
使用以下迁移
class AddNewSelectOptionsToProjects < ActiveRecord::Migration
def change
create_table :type_projects do |t|
t.string :thetype
t.timestamps
end
create_table :projects_type_projects, id: false do |t|
t.belongs_to :type_project
t.belongs_to :project
end
create_table :language_needs do |t|
t.string :theneed
t.timestamps
end
create_table :language_needs_projects, id: false do |t|
t.belongs_to :language_need
t.belongs_to :project
end
end
end
以及以下db:seed
LanguageNeed.create(:theneed => "PHP")
LanguageNeed.create(:theneed => "HTML and CSS")
LanguageNeed.create(:theneed => "JavaScript")
LanguageNeed.create(:theneed => "Ruby on Rails")
TypeProject.create(:thetype => "Code Review One-Time")
TypeProject.create(:thetype => "Ongoing Code Review")
TypeProject.create(:thetype => "Pair Programming")
TypeProject.create(:thetype => "Website Application")
一切都很好,问题出现了,但是我试图使用ransack gem,并意识到habtm关系存在一些问题。所以,在我想要测试的表单后,如果我可以调用它,那么我写完之后的页面
<%= @project.type_projects %>
<%= @project.language_needs %>
我得到了这个
#<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_TypeProject:0xbb9b26c8> #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_LanguageNeed:0xbba1041c>
在浏览器的该页面上。
我的问题是如何调用填写表格的人为collection_select和collection_check_boxes提出的问题?
答案 0 :(得分:0)
我在开发者的帮助下想出来了。不在stackoverflow上
强参数是language_needs和type_projects,应该是language_need_ids和type_project_ids