2013-05-03 6 views
6

私は、OutputFieldsとhas_manyの関係を持つQueryモデルを持っています。私のクエリコントローラの新しい関数では、いくつかのOutputFieldをクエリインスタンス内に構築します。私のフォームでは、各チェックボックスで、オブジェクトが保存されているかどうかを確認します(チェックは、このインスタンスのOutputFieldをデータベースに保存することを意味します)。これどうやってするの?Rails 3 - 作成のチェックボックス(_destroyの反対側)

私のモデル:私のクエリコントローラの

class Query < ActiveRecord::Base 
    attr_accessible :description, :name 

    has_many :output_fields, :dependent => :destroy 
    accepts_nested_attributes_for :output_fields 
end 

class OutputField < ActiveRecord::Base 
    attr_accessible :query_id, :column_name, :table_name 

    belongs_to :query 
end 

関連するセクション。構造も別のモデルです。

# GET /queries/new 
    # GET /queries/new.json 
    def new 
    @query = Query.new 
    Structure.columns.each do |column| 
     @query.output_fields.build(:table_name => Structure.table_name, :column_name => column.name) 
    end 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render :json => @query } 
    end 
    end 

最後に、私の見解です。今は、チェックボックスをdestroy属性にリンクしています。これは、私が望むものとまったく逆のことをすると思います。

<%= form_for(@query) do |f| %> 
    <%= f.fields_for :output_fields do |builder| %> 
    <div class="field"> 
     <%= builder.check_box :_destroy %> 
     <%= builder.label :_destroy, builder.object.column_name %> 
    </div> 
    <% end %> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

明らかでない場合は、単純なクエリビルダのユーザーインターフェイスを生成しようとしています。これは私の最初のレールアプリなので、どんなアドバイスも感謝しています。

答えて

9

デフォルトでは、check_boxフォームヘルパーの値はchecked_valueを '1'に設定し、unchecked_valueを '0'に設定します。したがって、破棄チェックボックスの動作を逆にするには、これらの値を切り替えてください。

<%= builder.check_box :_destroy, {}, '0', '1' %> 
+0

将来のニースのトリック+1は、私のために働いた。 –

関連する問題