Ruby on Rails: пытается создать новый объект, принадлежащий пользователю ... не уверен, как это сделать ... правильно - PullRequest
1 голос
/ 23 ноября 2010

Controllor:

  def new(user)
    @address = Address.new
    @address.user_id = user.id
  end

Ссылка, по которой я щелкаю, вызывает ошибку

<%= link_to "Add Address", new_address_path(current_user)%>

Адресная модель

  belongs_to :user

Модель пользователя

  has_many :addresses

Просмотр нового адреса

<h1>New Address</h1>

<% form_for @address, :url => new_address_path do |f| %>
  <%= f.error_messages %>
  <%= render :partial => "form", :object => f %>
  <%= f.submit "Add Address" %>
<% end %>

Схема для адресов

  create_table "addresses", :force => true do |t|
    t.string  "number"
    t.string  "street"
    t.string  "city"
    t.string  "state"
    t.string  "zip_code"
    t.integer "user_id"
  end

мои маршруты

  map.resources :users
  map.resources :addresses

И ошибка

uninitialized constant AddressesController
Parameters:

{"format"=>"#<user:0x105498c60>"}

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

В каком контроллере находится этот метод:

 def new(user)
    @address = Address.new
    @address.user_id = user.id
 end
0 голосов
/ 23 ноября 2010

Вместо

new_address_path(current_user)

попробуйте использовать:

new_user_address_path(current_user)

и убедитесь, что current_user является допустимым объектом пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...