设计添加用户送货地址

时间:2015-02-24 19:13:25

标签: ruby-on-rails ruby devise shipping marketplace

我创造了一个市场。我有设计处理的用户帐户。我想添加额外的用户属性。例如结算和送货地址(以及在大多数情况下都要处理这两种情况的主要地址)。

使用默认设置配置Devise。我使用this tool在users文件夹下的app控制器文件夹中生成设计控制器。因为我发现了很多人试图从不同的控制器/视图渲染表单。

我生成了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集成到我的设计用户中。

./应用/视图/ user_addresses / _form.html.erb

./应用/视图/设计/注册/ 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表单。

谢谢你

1 个答案:

答案 0 :(得分:0)

Useraddresses还有更多功能吗?或者是向User Class添加属性的唯一功能。如果是,请查看帖子here