【发布时间】:2016-03-17 04:37:46
【问题描述】:
我正在使用 Devise 在我的应用程序中构建注册/身份验证系统。
查看了很多用于向设计模型添加信息的资源(例如用户名、传记、头像 URL 等。)[资源包括 Jaco Pretorius' website、this (badly formed) SO question、and this SO question。
这一切都很好——它有效。但我的问题是它保存到用户模型,根据database normalizations (also referencing this SO question),它实际上应该保存到通过has_one 和belongs_to 连接的用户子模型。
到目前为止,我已经通过 Devise 创建了一个 User 模型。我还通过rails generate 脚本创建了UserProfile 模型。
user.rb(供参考)
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :confirmable, :recoverable, :rememberable, :trackable, :validatable
has_one :user_profile, dependent: :destroy
end
user_profile.rb
class UserProfile < ActiveRecord::Base
belongs_to :user
end
timestamp_create_user_profiles.rb
class CreateUserProfiles < ActiveRecord::Migration
def change
create_table :user_profiles do |t|
t.string :username, null: false
t.string :biography, default: ""
t.references :user, index: true, foreign_key: true
t.timestamps null: false
end
add_index :user_profiles, [:user_id, :username]
end
end
我现在的问题是,如何收集这两种模型的信息并通过设计注册表单确保它们最终都在正确的位置?
我看到了有关创建状态机的资源(AASM 和 the answer to this SO question。我还看到了有关在同一主题上创建 a wizard with WICKED 和 an article 的信息。
对于我的用例来说,这些似乎都太复杂了。有什么方法可以简单地将输入与设计分开并确保最终出现在正确的位置?
【问题讨论】:
标签: ruby-on-rails ruby devise