私はこのようなルーティングを使いたいと思います:
resources :customers do
resources :electricity_counters, :shallow => true do
resources :electricity_bills, :shallow => true
end
end
electricity_counterを作成するとうまくいきますが、編集が期待通りに機能しません。
私がelectricity_counters/1/editを訪れると空白のフィールドしか得られず、すべてのデータが失われてしまいます。
私の_form.html.erbはこのように始まります
<%= form_for([@customer, @customer.electricity_counters.build]) do |f| %>
新規および編集用のコントローラーメソッドは次のようになります。
# GET customers/1/electricity_counters/new
def new
@customer = Customer.find(params[:customer_id])
@electricity_counter = @customer.electricity_counters.build
end
# GET /electricity_counters/1/edit
def edit
@electricity_counter = ElectricityCounter.find(params[:id])
@customer = @electricity_counter.customer
end
デバッグでは、私の@customer変数は正しく設定されていないようですが、おそらく私はそのaptanaデバッガを使うのは馬鹿です。
electricity_counterモデルには、以下のように設定された顧客との関連付けがあります。
belongs_to :customer
だから私は何が間違っているの?