首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定制rails 3.2中的视图,使其只包含注册表单中的某些元素

如何定制rails 3.2中的视图,使其只包含注册表单中的某些元素
EN

Stack Overflow用户
提问于 2013-01-06 09:48:43
回答 2查看 134关注 0票数 1

我是一名rails新手,我已经开始开发一个web应用程序。

我使用devise来设置用户注册,还生成了devise视图模板。

我在那里添加了自定义模型-用户名,名字,姓氏等。然后我在user.rb中的attr_accessor中添加了它们,并验证了这些细节的存在

我想在编辑注册表单中添加这些元素,并成功地工作了。

在注册页面上-代码仅要求提供电子邮件、密码、确认密码(默认设置为devise)。

如果我现在尝试注册为新用户(在所有这些步骤之后),我得到一个错误,提示名字不能为空,姓氏不能为空,等等。

如何从注册中排除它们,同时在用户配置文件编辑中保持它们处于活动状态?

我希望我提前为你做了sense.thanks以帮助你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-06 18:02:03

如果我理解正确的话,在注册/注册过程中,您只想要求提供电子邮件和密码,而不需要该表单中的其他用户模型属性(名字、姓氏)。但是,您还希望稍后在用户编辑其配置文件时验证这些其他属性。

因此,由于您正在验证是否存在这些在提交注册表单时未提供的额外属性,因此创建新用户记录的尝试在验证时根本无法创建。

尝试:on => :update validation选项,以指定某些字段应仅在以后更新时进行验证,而不是默认设置,即在保存记录时进行验证。如下所示:

代码语言:javascript
复制
class User < ActiveRecord::Base
    validates :email, :presence => true
    validates :firstname, :presence => true, :on => :update
    validates :surname, :presence => true, :on => :update
    ...
end

请参阅http://guides.rubyonrails.org/active_record_validations_callbacks.html#on

票数 0
EN

Stack Overflow用户

发布于 2013-01-06 10:49:47

您可以进入views > devise文件夹并创建一个registrations文件夹(如果不在那里),并创建一个new.html.erb来查看您在以下链接下找到的文件:https://github.com/plataformatec/devise/blob/master/app/views/devise/registrations/new.html.erb

将其复制到您的新文件中,并根据需要进行自定义...它应该覆盖设计的默认视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14178481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档