- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试在我的用户注册网站时创建一个配置文件模型。正如我现在所拥有的那样,Profile 模型是在使用正确的外键注册时创建的。我的问题在于在用户完成设计确认步骤后尝试更新配置文件模型。
我的用户被称为“艺术家”。
### /artists/registrations_controller.rb ###
class Artists::RegistrationsController < Devise::RegistrationsController
# GET /resource/sign_up
def new
super
@profile = @artist.build_artist_profile
end
# POST /resource
def create
super
@profile = @artist.create_artist_profile(profile_params)
end
private
def profile_params
params.permit(:biography, :location, :genre, :members, :facebook_url, :twitter_url, :youtube_url, :itunes_url, :amazon_url)
end
end
### /artists/profiles_controller ###
class Artists::ProfilesController < ApplicationController
before_action :authenticate_artist!
before_action :correct_artist
before_action :set_artist
def edit
@profile = ArtistProfile.find_by(params[:artist_id])
end
def update
@profile = ArtistProfile.find_by(params[:artist_id])
if @profile.update_attributes(profile_params)
redirect_to current_artist
else
redirect_to root_url
end
end
private
def set_artist
@artist = current_artist
end
def correct_artist
@artist = current_artist
if @artist != Artist.find(params[:id])
redirect_to artist_path
end
end
def profile_params
params.require(:artist_profile).permit(:biography, :location, :genre, :members, :facebook_url, :twitter_url, :youtube_url, :itunes_url, :amazon_url)
end
end
### /artist.rb ###
class Artist < ActiveRecord::Base
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :lockable, :timeoutable
has_one :artist_profile, dependent: :destroy
### /artist_profile.rb ###
class ArtistProfile < ActiveRecord::Base
belongs_to :artist
validates :artist_id, presence: true
end
我把自己的代码放到了创建方法中的Devise注册 Controller 中。注册后,将创建 ArtistProfile 模型并填充空白字符串,这是完美的。但是,如果我尝试编辑/更新单个艺术家的个人资料,则只会更新第一个艺术家的个人资料。
即。艺术家 1 注册并创建配置文件 2。艺术家 1 通过编辑页面将 Profiles 1 的位置更新为 Buffalo。艺术家 2 注册并创建配置文件 2。艺术家 2 将配置文件 2 的位置更新为纽约,但更新的是配置文件 1 的位置,而不是配置文件 2 的位置。
这是在注册时创建模型的方法吗?如果是,我该如何修复编辑/更新方法?
或者有更好的方法吗?
最佳答案
您的这行代码不正确:
@profile = ArtistProfile.find_by(params[:artist_id])
解决方法是找到艺术家,然后获取个人资料:
@profile = Artist.find(params[:artist_id]).artist_profile
优化:
@artist = Artist.find(params[:artist_id]).includes(:artist_profile)
@profile = @artist.artist_profile
或者,如果您的 Controller 正在接收艺术家个人资料 ID,那么您可以执行此修复:
@profile = ArtistProfile.find(params[:artist_profile_id])
关于ruby-on-rails - 在设计用户注册时创建另一个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27866122/
正如标题所解释的那样。 Django 1.5 中是否有处理用户密码重置的内置方法? 即通过电子邮件重置链接? 需要我的用户拥有“忘记密码”链接。 最佳答案 就在这里。 您也可以在 中使用此表格form
我有一个用 symfony (1.2.9) 开发的网站。我想在网站上添加一个 wiki,并选择了 mediawiki。 我想以如下方式将 mediawiki 与我的网站集成: 媒体维基不会创建新用户
我想使用 abstractuser 为 Django 自定义用户模型创建一个注册表单。我不想要任何特别的东西,只想要稍后在需要时添加自定义字段的能力。 我从the docs了解到我需要: 设置AUTH
我正在构建一个独立的 couchdb 应用程序。这些被称为 couchapps。这个想法是数据库本身在端口 80 上提供服务并返回 HTML 并作为实际网站工作。这是一个非常强大的想法,我对将代码保存
我有一个由 keycloak 保护的应用程序。转到安全页面会显示 keycloak 登录页面,正确的用户/密码会给出预期的结果。 在客户端中,我已打开用户注册。现在登录页面显示一个注册链接,该链接显示
这是我将注册表单数据插入数据库的代码。此代码添加数据但也会给出解析错误,但如果用户名已存在则不会给出错误。 Notice: Undefined variable: username in C:\Pr
我被要求创建一个引擎,将我们的 SQL 数据转换为 Moodle 数据(用户、类(class)、注册)。 我遇到了需要使用 Moodle API 以编程方式注册学生而无需操作数据库的问题。 如:enr
这个问题已经有答案了: When should I use a return statement in ES6 arrow functions (6 个回答) 已关闭 4 年前。 我正在构建 Node
我正在寻找 r/shiny 的用户注册/登录代码模板。它不需要安全,只是一种根据以前的用户设置在 Shiny 的应用程序上个性化内容的方法。不想太依赖服务器服务(比如访问cookies) 我想知道是否
我知道这个问题已经被问过很多次了。我是一个新手,我不知道为什么 mysqli_num_row 不起作用。即使我尝试了调用的过程方法和 OO 方法。计数仍然是 0。帮帮我,先谢谢了。如果有任何问题请原谅
一直遵循 Flask 安全协议(protocol),使用 ORM peewee 为 Flask 博客帖子类型应用程序进行用户注册和登录表单。尽管注册存在问题,但登录却很有魅力。相关问题 How to
我正在使用 Django 开发一个服务器,并希望当用户注册时运行一个函数,该函数将使用用户名创建一个目录。具有新用户名的文件夹将保存在收藏夹中。我的代码如下: 模型.py from djang
如何在用户注册/加入时创建用户目录。 mkdir() 是用来创建目录的,但是我会在 .php 代码中的什么地方插入它。这是 .php 代码的链接:http://tinyurl.com/qjuxty8我
我想在我的 android 应用程序中实现OTP 功能。在此应用程序中,注册后用户将收到一次性密码 key 。 验证 OTP 后,用户将能够使用该 OTP 成功注册/开设帐户。我需要做什么才能实现这一
我正在使用 React Js + Redux + React Router。 用户登录/注册流程的最佳实践是什么? 为此我需要多少个 reducer :一两个(一个用于登录,一个用于注册)? 用户注册
我正在使用 WebMatrix 在我的用户数据库中创建一个表。 我的tutorial表示对确定用户注册是否有效的字段使用 BOOLEAN 数据类型,因为它允许该字段为 true 或 false。 BO
我成功地在 Tomcat 上启动了 Restcomm,并且可以看到 127.0.0.1:8080 和 127.0.0.1:8080/Click2CallAsync 应该有什么。在 Click2Call
我有一个网站,我已经设置了一个成员(member)区,我想这样做,这样当人们注册时,他们需要订阅 paypal,然后才在数据库中创建用户。 我不太了解paypal的运作方式。有人有任何指示吗?如何或从
下午好 我正在编写一个允许新闻用户在网站上注册的脚本。 简而言之,这些是我计划的步骤: register.php - 新用户填写表格,输入用户名、详细地址、公司名称和电子邮件地址。然后通过 SSL 将
这是一个非常简短的前端注册指南,但我在密码方面遇到了一个小问题。 我禁用了在用户注册时发送的带有密码生成的电子邮件: //Don't Send Notification Email To Regist
我是一名优秀的程序员,十分优秀!