我在我的一个 View 中使用表单助手,我希望用户从选项列表中进行选择。然后我想将所选选项的等效 ID 存储到我的数据库中。然而,每次我选择一个选项时,它的 id 都没有被存储,数据库只是为这个属性说 nil。
<%= f.label :"Team Against" %><br>
<%= f.select :opposing_team, options_for_select([['Team 1', 1], ['Team 2', 2], ['Team 3', 3]]) %><br>
例如,我的表中有一列名为“opposing_team”,当用户选择团队 1 时,我希望 opposing_team 更新为值 1。目前我可以在表单中选择选项范围,但是opposing_team 值始终为零。
编辑:
def create
@league = League.find(params[:league_id])
@team = @league.teams.find(params[:team_id])
@fixture = @team.fixtures.create(fixture_params)
if @fixture.save
redirect_to league_team_path(:league_id => @league.id, :id => @team.id)
else
render 'new'
end
end
def new
@team = Team.find(params[:team_id])
@fixture = Fixture.new
end
这就是 fixtures Controller 的组成部分。 opposing_team 是数据库中的整数值。
最佳答案
这是一个常见问题,最常见的答案是 strong_parameters缺少必需的 key 。 在您的 Controller 中,您的末尾是否有一个类似于以下内容的方法:
def fixture_params
params.require(:fixture).permit(:value, :other_value)
end
如果是这样,将 :opposing_team
添加到键列表中。
def fixture_params
params.require(:fixture).permit(:value, :other_value, :opposing_team)
end
关于ruby-on-rails - 使用 Ruby on Rails 的表单助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198324/