我是 Rails 新手,我正在尝试创建一个应用程序,其中用户可以属于许多团队并且团队包含许多用户。这是我的模型类和迁移页面。我正在尝试制作一个注册页面,您可以在其中单击不同的团队来分配用户。拥有一个默认的 none 团队会很好实施。
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
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t.references :teams
t.timestamps
end
end
end
class CreateTeams < ActiveRecord::Migration
def change
create_table :teams do |t|
t.string :name
t.references :users
t.timestamps
end
end
end
这是我的控制器中创建方法的代码
def create
@users = User.all
@user = User.new(params[:user])
if @user.save
flash.keep[:success] = @user.name + " Added to list of Users!"
redirect_to users_path
else
render 'index'
end
end
这是我的视图文件中的代码
<% for team in @teams %>
<%= check_box_tag 'user[team]', team.name, @user.team_name.include?(team.name)%>
<%= team.name -%>
<% end %>
但是输出只是“团队”。我不确定这个值是否真的被传递给了对象。
编辑:我只需要阅读复选框文档表。导致问题的参数可能已经被初始化为 true 和 false 。