代码之家  ›  专栏  ›  技术社区  ›  NullVoxPopuli

RubyonRails:试图创建一个属于用户的新对象…不确定如何正确地创建它…

  •  1
  • NullVoxPopuli  · 技术社区  · 15 年前

    控制员:

      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 回复  |  直到 15 年前
        1
  •  1
  •   Jasdeep Singh    15 年前

    在什么控制器中放置此方法:

     def new(user)
        @address = Address.new
        @address.user_id = user.id
     end
    
        2
  •  0
  •   Sarah    15 年前

    而不是

    new_address_path(current_user)
    

    尝试使用:

    new_user_address_path(current_user)
    

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