【发布时间】:2017-10-03 21:51:00
【问题描述】:
我正在开展一个项目,在该项目中,创建用户后应将其添加到团队中。创建新团队时,团队列表会更新。
但是,每次我保存用户时,团队都会保存为下拉菜单中的第一项。
<%= f.label :team %>
<%= f.select :team, {}, {}, id: :user_team do %>
<% @teams.each do |team| %>
<%= content_tag :option, team.name, value: team.id %>
<% end %>
<% end %>
控制器:
def create
team = Team.find_by(params[:user_team]).id
user = User.new(user_params)
user.team_id = team
if (params[:user_admin] == '0')
user.admin = 'false'
else
user.admin = 'true'
end
if (user.valid?)
user.save
redirect_to "/users/#{user.id}"
else
flash[:notice] = user.errors.full_messages
redirect_to '/users/new'
end
结束
def user_params
params.require(:user).permit(:first_name, :last_name, :username,
:password, :password_confirmation, :admin, :team)
end
【问题讨论】:
-
你能展示你的控制器、渲染的表单和提交的参数吗?
-
第二个呈现的形式。我的猜测是
<%= content_tag :option, team.name, value: team.id %>可能没有按照您的想法做,或者您需要提示或include_blank参数。