0

ユーザーが複数のチームに所属でき、チームには複数の人がいるモデルを作成しています。チェックボックスがありますが、オブジェクトに値を渡しません。

class User < ActiveRecord::Base
  attr_accessible :email, :name
  has_many :teams 
  accepts_nested_attributes_for :teams
end


class Team < ActiveRecord::Base
  has_many :users
  attr_accessible :name
end

これが私のコントローラーのコードです

def create
@users = User.all
@user = User.new
@teams = Team.all
@user.attributes = {:teams => []}.merge(params[:user] || {})
end

ここに私のビューファイルのコードがあります

<%= form_for @user, url: {action: "create"}  do |f| %>
<%= f.label :teams%>
<% for team in @teams %>
<%= check_box_tag team.name, team.name, false, :teams => team.name%>      
<%=  team.name -%>
<% end %>
<%= submit_tag "Create User" %>

私はそれを見せようとしています

<%= user.teams.name %>

しかし、唯一の出力は「チーム」です。誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

1

実際には、そのように多対多の関係を行うことはできません...行う必要があるhas_many :throughか、代わり にhas_and_belongs_to_manyここでいい説明を...

http://guides.rubyonrails.org/association_basics.html

于 2013-06-26T01:23:59.317 に答える