Rails 上 Ruby 的表单助手

Form Helpers with Ruby on Rails

我在我的一个视图中使用表单助手,我希望用户从选项列表中进行选择。然后我想将所选选项的等效 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>

例如,我的 table 中有一个名为 'opposing_team' 的列,当用户选择团队 1 时,我希望 opposing_team 更新为值 1。目前我可以在表单中选择选项范围,但 opposing_team 值始终为 nil。

编辑:

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

这就是灯具控制器的组成部分。 opposing_team 是数据库中的整数值。

这是一个常见问题,最常见的答案是 strong_parameters 缺少所需的密钥。 在你的控制器中,你有没有一个看起来像这样的方法:

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