Tôi muốn sử dụng một số định tuyến như thế này:Rails lồng định tuyến + cạn chỉnh sửa không làm việc
resources :customers do
resources :electricity_counters, :shallow => true do
resources :electricity_bills, :shallow => true
end
end
Tạo một electricity_counter hoạt động tốt, nhưng chỉnh sửa không hoạt động như mong đợi .. Nếu tôi ghé thăm electricity_counters/1/chỉnh sửa Tôi chỉ nhận được các trường trống và tất cả dữ liệu của tôi bị thiếu.
_form.html.erb tôi cho rằng bắt đầu như thế này
<%= form_for([@customer, @customer.electricity_counters.build]) do |f| %>
và các phương pháp điều khiển cho mới và chỉnh sửa là như thế này:
# 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
Trong debug nó dường như là @ của tôi biến khách hàng không được đặt đúng .. nhưng có thể tôi chỉ là ngu xuẩn khi sử dụng trình gỡ rối aptana đó;)
Mô hình điện_counter có liên kết với khách hàng do:
belongs_to :customer
Vì vậy, tôi đang làm gì sai?
Cảm ơn :) Nhưng có có vẻ là một lỗi khác .. nếu tôi mở chỉnh sửa tôi nhận được: 'NoMet hodError in Electricity_counters # edit phương thức undefined 'customer_electricity_counter_path 'cho # <#: 0x10cb61590>' –
kannix
Tài nguyên của bạn là 'cạn' bạn không cần phải bắt đầu' điện_counter_path' với 'khách hàng'. Nhưng tôi cũng nghĩ rằng bạn có 'routes.rb' ngược lại, tôi sẽ chỉnh sửa câu trả lời của tôi thật nhanh. – Azolo
Hmm Tôi đã sửa route.rb và đổi phương thức form_for thành '<% = form_for @electricity_counter do | f | %> ' Đó ấn định chỉnh sửa .. nhưng sau đó con đường mới dường như bị phá vỡ :( ' Không trận tuyến đường {: format => nil,: controller => "electricity_counters"} ' – kannix