Ruby on Rails:尝试创建属于用户的新对象...不确定如何正确执行它

时间:2010-11-23 17:08:36

标签: ruby-on-rails

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 个答案:

答案 0 :(得分:1)

这个方法放在什么控制器中:

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

答案 1 :(得分:0)

而不是

new_address_path(current_user)

尝试使用:

new_user_address_path(current_user)

并确保current_user是有效的用户对象。