设计添加用户送货地址

Devise adding User shipping address

我正在创建一个市场。我有设计处理的用户帐户。我想添加额外的用户属性。例如帐单和送货地址(以及在大多数情况下兼顾两者的主要地址)。

设备使用默认设置进行配置。我已经使用 this tool 在我的用户文件夹下的应用程序控制器文件夹中生成设计控制器。正如我发现很多帖子中有人试图从不同的 controller/view.

呈现表单

我生成了user_address

class CreateUserAddresses < ActiveRecord::Migration
  def change
  create_table :user_addresses do |t|
    t.string :address
    t.string :city
    t.string :state
    t.integer :user_id

    t.timestamps null: false
  end
 end
end

并且还在我的用户配置文件中添加了一个主要地址 ID 以备后用。

class AddPrimraryAddressIdToUsers < ActiveRecord::Migration
  def change
    add_column :users, :primary_address_id, :integer
  end
end

现在我基本上想将这个 user_address _form.html.erb 集成到我的设计用户中。

./app/views/user_addresses/_form.html.erb

./app/views/devise/registrations/edit.html.erb

<div>
<% if current_user.primary_address_id.blank? %>
   Please create a primary address
      <%= render :partial => '/user_addresses/form'%>
<% end %>
</div>

这会在编辑页面上创建错误。

First argument in form cannot contain nil or be empty

<%= form_for(@user_address) do |f| %>
  <% if @user_address.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user_address.errors.count, "error") %> prohibited this user_address from being saved:</h2>

  <ul>

我的理解是因为 user_address 不在设计用户控制器中。我如何将 user_address 创建的所有内容集成到设计视图和控制器中以清理目录。或者简单地渲染 user_address 表单。

谢谢网卡

Useraddresses 未来是否有更多功能?或者是向用户添加属性的唯一功能 Class。如果是这样,请查看 post here