2011-07-09 13 views
1

私はcollection_selectについて質問を別々に始めましたが、問題はないことがわかりました。 この特定のモデルはデータをまったく保存しません。パラメータの値は無視されます。私は、タイムスタンプフィールドを除いて、NULL値を持つ新しいレコードのみを保存することができます。新しいレコードは値で保存されていません

私の最新のコメントを参照して修正してください。

私は便利なscaffoldコマンドでいくつかのモデルを生成しました。今私は正しいエンティティに新しいエンティティをリンクするために、textboxをcollection_selectに変更しようとしました。

レール3.1RC4を使用しています(おそらくこれはバグではありません)。私は、エラーメッセージが表示され、送信ボタンをクリックした後

<div class="field"> 
    <%= f.label :category_id %><br /> 
    <%= f.collection_select(:category_id, Admin::Category.all, :id, :name) %> 
    </div> 
    <div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    ...all other items... 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 

:私は次のコードを使用_form.html.erbで

。それは、名前とパーマリンクがバリデーションに従わないと言います。ログファイルには、私はこれを見つけたので、私は、しかし、理解していない:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"my token is here", "admin_branche"=>{"category_id"=>"3", "name"=>"Verzekeraars", "permalink"=>"verzekeraars", "visible"=>"1"}, "commit"=>"Create Branche"} 

私にとって、のparamsは、すべての必要な値が含まれているようです。

私は以下の方法とモデルを作成して完成させていただきます。

これまでのところ、私はcollection_selectとf.collの間で前後に切り替えることを試みました...成功しませんでした。現在の設定は、ログに基づいて私にとって最も適切だと思われます。 私はまたたくさんのグーグルでも、答えを見つけることができませんでした。このサイトの質問2280106は同じように見えますが、モデルでコメントアウトしたattr_accessibleと関係がありました(後でサーバーを再起動して再試行しました。

大変助かりました!

branche.rb:

class Admin::Branche < ActiveRecord::Base 

# attr_accessible :name, :permalink 

    #relationships 
    has_many :courses, :as => :parent 
    belongs_to :category 

    #validations 
    validates :name, :presence => true, :length => {:maximum => 255} 
    validates :permalink, :presence => true, :length => { :within => 4..25 } 

end 

は、コントローラにアクションを作成します、あなたは、このコントローラで

def create 
    @admin_branch = Admin::Branche.new(params[:admin_branch]) 

    respond_to do |format| 
     if @admin_branch.save 
     format.html { redirect_to @admin_branch, notice: 'Branche was successfully created.' } 
     format.json { render json: @admin_branch, status: :created, location: @admin_branch } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @admin_branch.errors, status: :unprocessable_entity } 
     end 
    end 
    end 
+0

をすべてのファイルはこのモデルに関連し、rails g scaffoldコマンドを再度実行しましたが、引き続きパラメータを取得しません。他のモデルはうまく動作します...どんな助け? – Kobes

答えて

0

をやっている:

@admin_branch = Admin::Branche.new(params[:admin_branch]) 

をあなたはこれを行う必要があります。

@admin_branch = Admin::Branche.new(params[:admin_branche]) 

リクエストパラメータを見ると、属性は「admin_branche」ではなく「admin_branch」の下にあります。

あなたの問題を解決するはずですが、そうでない場合は、私たちにお知らせください。

+0

うわー、ありがとう!それは完全にそれでした。私は(何時間も見つめた後に)気づいていないばかげた気がする。私はまだ、デフォルトの足場ジェネレータがそれを正しく置かなかった理由を理解していませんが、単数形/複数形と関係がある可能性があります。そうかもしれない。私はBranche足場を作りましたが、英語の正しい単数形は最後に-eがありません。オランダ語の単数形が非常に混乱しているのは、私がそれをどのように綴っているかです...ごめんなさい! – Kobes

+0

大変申し訳ございませんが、誤字は誰にも起こりません。私はそれがうまくいった:) – henrikhodne

0

あなたが発生した抑揚に問題がある場合、あなたは完全にちょうどこのような何かを追加設定/初期化子/ inflections.rb

でそれらをカスタマイズすることができます:私は削除し、念のために

ActiveSupport::Inflector.inflections do |inflect| 
     inflect.irregular 'branch', 'branches' 
    end 
関連する問題