如何在rails上正确使用带ruby的hidden_​​fields将信息传递给控制器​​?

时间:2012-07-05 23:18:52

标签: ruby-on-rails hidden-field

我试图让用户按下按钮,使用hidden_​​field创建一个新的数据库条目。但是,我希望传递给数据库的一点信息并没有在那里。

视图上的表单

<%= form_for(current_user.rounds.build(:round_id => '201202')) do |f| %>
    <div><%= f.hidden_field :round_id %></div>
    <%= f.submit "Register", class: "btn btn-large" %>
<% end %>

控制器

def create
    @register = current_user.rounds.build(params[:round_id])
    if @register.save
        redirect_to root_path, :flash => { :success => "Registered" }
    end
end

但是,此代码在数据库中使用user_id创建了一个新条目,但没有round_id。

有人能告诉我我的错误在哪里吗?

由于

编辑:我的视图代码生成的HTML代码

<form id="new_round" class="new_round" method="post" action="/rounds" accept-charset"UTF-8">
    <div>
        <input id="round_round_id" type="hidden" value="201202" name"round[round_id]">
    </div>
    <input class"btn brn-large" type"submit" value="Register" name="commit">
</form>

圆形模型

Class Round < ActiveRecord::Base
    attr_accessible :user_id, :round_id, :score

    belongs_to :user
end

1 个答案:

答案 0 :(得分:0)

问题是您正在使用hidden_field实例中的form_for。当你使用它时,传递给控制器​​的参数会有所不同 尝试使用hidden_field_tag "round_id",您将获得预期的结果。