У меня есть два вложенных ресурса:
class Customer < ActiveRecord::Base
has_many :locations, :dependent => :destroy
accepts_nested_attributes_for :locations
end
class Location < ActiveRecord::Base
belongs_to :customer
end
В route.rb у меня
resources :customers do
resources :locations
end
Код для создания нового местоположения:
<%= link_to image_tag("add.png"), new_customer_location_path(@customer), :class => "button" %>
Когда я пытаюсь создать новое местоположение, я получаю следующую ошибку
Ошибка маршрутизации
Не найдено ни одного маршрута {: action => «show»,: controller => «location»,: customer_id => #,: id => #}
Почему: вместо "new" вызывается action => "show"?
вывод рейковых маршрутов
customer_locations GET /customers/:customer_id/locations(.:format) {:action=>"index", :controller=>"locations"}
POST /customers/:customer_id/locations(.:format) {:action=>"create", :controller=>"locations"}
new_customer_location GET /customers/:customer_id/locations/new(.:format) {:action=>"new", :controller=>"locations"}
edit_customer_location GET /customers/:customer_id/locations/:id/edit(.:format) {:action=>"edit", :controller=>"locations"}
customer_location GET /customers/:customer_id/locations/:id(.:format) {:action=>"show", :controller=>"locations"}
PUT /customers/:customer_id/locations/:id(.:format) {:action=>"update", :controller=>"locations"}
DELETE /customers/:customer_id/locations/:id(.:format) {:action=>"destroy", :controller=>"locations"}
Код контроллера для нового действия в location_controller.rb:
before_filter :find_customer
def new
@location = @customer.locations.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @location }
end
end
Я не понимаю ошибку, у меня есть еще два вложенных ресурса, которые работают правильно, проверили весь код, и кажется, точно так же ...
Есть ли вероятность, что слово «местоположение» является зарезервированным словом, или что-то упущено / неверно?