0

私はこのフォームを持っています:

= 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オブジェクトにデータを入力する方法がわかりませんか?

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

ありがとう!!

4

1 に答える 1

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?

于 2012-04-23T19:17:53.773 に答える