Ruby on Rails HABTM collection_select数据库调用

时间:2014-01-28 15:25:11

标签: mysql ruby-on-rails has-and-belongs-to-many

好吧,所以我已经研究了一段时间了,似乎无法弄明白。我已经在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提出的问题?

1 个答案:

答案 0 :(得分:0)

我在开发者的帮助下想出来了。不在stackoverflow上

强参数是language_needs和type_projects,应该是language_need_ids和type_project_ids