2012-04-23 14 views
0

私はこのフォームがあります。Rubyのフォーム入力を取得し、データベースに挿入するための正しい方法は

= form_for([:mobile,@disclosure], :html => {:id => "disclosure-form", :remote => true}) do |f| 
     %p 
     =f.label :display_as, (t :select_disclosure_type) 
     =f.select :display_as, options_from_collection_for_select(Disclosure.basics, :display_as, 
      :name, f.object.display_as) 
     %p 
     =f.label :notes, (t :notes) 
     =f.text_area :notes, :class => "#{validation_rules(:free_disclosure_notes)}", :rows => 5 , :id => "disclosure_notes_entry" 
     = buttonset({:submit_label => (t "buttons.influencers.disclosures.create"),:submit_css_class => "call-to-action", 
      :cancel_url => "#",:direction => :left_to_right}) 

を、私はこれまでのところ、このコントローラーを持っている:

def create 
    Rails.logger.debug "-"*100 
    Rails.logger.debug session.inspect 
    Rails.logger.debug "-"*100 

    provider = nil 

    @disclosure = params[:disclosure-form].blank? 
    resource = build_resource({}) 

    begin 
     if disclosure.nil? 
     print "hello 1" 
     else 
      print "hello 2" 
     end 

    rescue Exception => ex 
     Rails.logger.debug ex 

    end 

    respond_to do |format| 
     format.html{} 

    end 
    end 

しかし、私はないです@disclosuresオブジェクトを取得してデータベースに挿入できるようにするにはどうすればよいですか?

フォームから正しいデータを取得してデータベースに追加するにはどうすればよいですか?

ありがとうございます!

答えて

2

お客様のフォームデータは、params[:disclosure]ハッシュである必要があります。だから、あなたのような何かをするだろうあなたのcreateアクションで:

def create 
    @disclosure = Disclosure.new(params[:disclosure]) 

    if @disclosure.save 
    # redirect to show or something else 
    else 
    # render 'new' for with validation errors 
    end 
end 

これは、DBにあなたのオブジェクトを保存する必要があります。検証エラーがない場合。

この行の機能はわかりません:@disclosure = params[:disclosure-form].blank?

関連する問題