0

ユーザーがボタンを押して、hidden_​​fieldを使用してデータベースに新しいエントリを作成できるようにしようとしています。しかし、私がデータベースに渡したい情報の1つは、データベースに到達していません。

ビューのフォーム

<%= 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
4

1 に答える 1

0

問題は、インスタンスhidden_fieldから使用していることです。form_forこれを使用すると、コントローラーに渡されるパラメーターが少し異なります。
を使用してみてくださいhidden_field_tag "round_id"。期待どおりの結果が得られます。

于 2012-07-05T23:43:59.323 に答える