2

OKこれは奇妙です、私は基本的に次のクラスを持っています:

class PriceProfile < ActiveRecord::Base
  has_many :prices
  has_many :price_profile_date_ranges

  attr_accessible :name, :price_profile_date_ranges_attributes
  accepts_nested_attributes_for :price_profile_date_ranges

}

class PriceProfileDateRange < ActiveRecord::Base
  attr_accessible :end_date, :price_profile_id, :start_date, :prices, :prices_attributes
  has_many :prices, :dependent=>:destroy
  belongs_to :price_profile

  accepts_nested_attributes_for :prices
}

class Price < ActiveRecord::Base
  attr_accessible :price_profile_date_range_id, :price_profile_id, :product_id, :value
  belongs_to :price_profile
  belongs_to :price_profile_date_range
  belongs_to :product
}

価格プロファイルは、時間の経過とともに価格が変化する特定の製品の価格体系を定義します。価格が適用される日付範囲は price_profile_date_range テーブルに格納され、最終的に価格テーブルはすべての価格を保持します。次のコントローラーとビューを使用して、日付範囲を作成しながら価格を設定するためのフォームを作成しています。基本的に、フォームには開始日と終了日のフィールドとグリッドがあります。つまり、すべての製品に対して価格を入力するためのテキストボックスのリストがあります。

これはビューです:

.row
  .span9
    = simple_form_for(@price_profile_date_range, :class=>'well') do |f|


  .form-inputs
    = f.input :start_date, :required => true, :as => :string, :input_html =>{:class=>'datepicker'}
    = f.input :end_date, :required => true, :as => :string, :input_html =>{:class=>'datepicker'}
    = f.input :price_profile_id, :as=>:hidden
    %table.table.table-bordered.table-condensed.table-striped
      %tr
        %td
        - @products.each do |product|
          %td
            =product[:name]
          %td
            - f.fields_for(:prices) do |price_element|
              = price_element.input :value, :class=>'span1'
              = price_element.input :price_profile_id, :as=>:hidden
              = price_element.input :price_profile_date_range_id, :as=>:hidden
              = price_element.input :product_id, :as=>:hidden
  .form-actions
    = f.button :submit

これは正確には最終的な形式ではありません。問題は、f.fields_for 行が実行されないように見えることです。コントローラーで、一連の価格で @price_profile_date_range オブジェクトを初期化します。レイズ インスペクションを実行すると、ビューにもすべての価格オブジェクトが表示されますが、fields_for はまったく実行されません。私はここでかなり立ち往生しています。

4

1 に答える 1

3

-を- に変更してみてください=。ばかげているように聞こえますが、それが問題なのかもしれません。

于 2012-08-22T23:29:22.723 に答える