Tag: 设计

Rails 4,Devise,Omniauth(有多个提供商)

我花了几天时间在设计和omniauth上观看RailsCasts,然后通过相关教程来设置使用这些gem的身份validation系统。 我认为RailsCasts已经过时了,试图修补其他教程的差距正在创造各种问题。 请任何人都可以建议我可以用作实施该系统的基础的当前教程。 我有单独的用户和身份validation模型(用户有许多身份validation)。 我真的很想在rails 4上使用devise和omniauth(使用CanCan for capabilities),但是在试图找到一个基本设置(使用psql作为数据库)时,我正在撕裂我的头发。

Rails / Devise – 使用link_to自定义flash消息(devise.en.yml)

我想在devise.en.yml文件中自定义devise提供的以下flash msg: devise: failure: unconfirmed: ‘You have to confirm your account before continuing.’ 使用ruby代码以获取new_user_confirmation_path的链接。 换句话说,我希望我的flash消息显示如下: ‘You have to confirm your account before continuing. Didn’t receive confirmation instructions?’ 哪里’没有收到确认指示?’ 是new_user_confirmation_path的链接。 我想知道我是否可以在不编辑用户控制器的情况下执行此操作,因为默认情况下Devise不提供它。 感谢您的回答!

如何在设计模型中使用嵌套属性

我有与使用Devise创建其他相关模型 (没有答案)相同的问题。 我已经覆盖了创建新用户的设计视图并添加了公司名称,我已将模型更改为使用accepts_nested_attributes_for 没有错误,但它没有添加嵌套记录 ,我没有可以修改请求的控制器。 我有以下(缩短以使其可读): 的routes.rb map.devise_for :users map.resources :users, :has_many => :companies user.rb has_many :companies accepts_nested_attributes_for :companies devise :registerable … etc company.rb belongs_to :user new.html.erb … registration_path(resource_name) do |f| %> … … 更新:我没有添加:company到User模型中的attr_accessible列表。

Rails:使用具有单表inheritance的Devise

我遇到了一个问题,就是让Devise按照我对单表inheritance的方式工作。 我有两种不同类型的帐户,如下所示: class Account < ActiveRecord::Base devise :database_authenticatable, :registerable end class User < Account end class Company < Account end 我有以下路线: devise_for :account, :user, :company 用户在/user/sign_up注册, /company/sign_up在/company/sign_up注册。 所有用户使用/account/sign_in的单个表单/account/sign_in ( Account是父类)。 但是,通过此表单登录似乎只是为Account范围validation它们。 对/user/edit或/company/edit等操作的后续请求将用户指向相应范围的登录屏幕。 如何让Devise识别帐户“类型”并对相关范围进行身份validation? 任何建议非常感谢。

如何在Devise中自动记住用户记忆

我正在构建一个应用程序,我希望用户在他们的计算机上自动记住,而不需要“记住我”复选框。 我读到我可能要打电话给@user.remember_me! ,但不确定在哪里调用它,因为隐藏了Devise控制器。 我正在考虑在sign_in表单中添加一个隐藏的复选框字段,默认情况下标记了复选框,但我希望我能在控制器端执行此操作。 知道如何做到这一点? 谢谢!

Devise,Omniauth和Facebook集成会话错误

我是Rails的新手,正在安装我的第一个集成了Facebook登录/注册的应用程序。 我关注了Ryan Bates在这里发布的RailsCastvideo: https ://stackoverflow.com/a/4954443/1302333。 我按照他的教程整合了Twitter,但是我的Facebook有问题。 当我访问http://localhost:3000/auth/facebook我收到此错误: NoMethodError in AuthenticationsController#create undefined method `serialize_into_session’ for Symbol:Class 这是完整的痕迹: devise (2.1.0) lib/devise/rails/warden_compat.rb:19:in `serialize’ warden (1.1.1) lib/warden/session_serializer.rb:25:in `store’ warden (1.1.1) lib/warden/proxy.rb:161:in `set_user’ devise (2.1.0) lib/devise/controllers/helpers.rb:124:in `sign_in’ devise (2.1.0) lib/devise/controllers/helpers.rb:236:in `sign_in_and_redirect’ app/controllers/authentications_controller.rb:11:in `create’ actionpack (3.2.6) lib/action_controller/metal/implicit_render.rb:4:in `send_action’ actionpack (3.2.6) lib/abstract_controller/base.rb:167:in `process_action’ actionpack (3.2.6) lib/action_controller/metal/rendering.rb:10:in `process_action’ actionpack (3.2.6) lib/abstract_controller/callbacks.rb:18:in `block in […]

用Devise登录后重定向

在使用Devise登录后,是否可以将用户重定向到不同的页面(基于角色)? 它似乎只重定向到routes.rb中定义的root:to => …页面 谢谢!

在使用Rails和Devise注册后,将用户登录到其子域

我在我的Rails 3应用程序中使用Devise进行身份validation。 该应用程序使用PostgreSQL模式和Apartment gem来促进多租户。 创建帐户后 ,登录和退出特定子域的工作正常。 用户只能在子域上登录其特定帐户,这很棒。 这是我遇到问题的地方…… 全新用户点击注册url: http://foo.com/signup 默认情况下,当他们单击“提交”时,将创建新帐户,但会将用户发送到: http://foo.com/dashboard 相反,我希望他们去: http://myaccount.foo.com/dashboard 为了实现这一点,我覆盖了registrations_controller.rb文件中的after_sign_up_path_for方法: def after_sign_up_path_for(resource) root_url(:subdomain => resource.account.subdomain) end 这按预期工作 – 它加载正确的URL – 但用户的会话是为根域(foo.com)而不是子域创建的,因此要求用户登录。 我发现的一个建议是将config/initializers/session_store.rb更改为: config.session_store :cookie_store, :key => ‘_domain_session’, :domain => :all 但这允许任何人登录任何子域的帐户,这显然不是很酷。 问题:如何确保注册时创建的会话对注册过程中创建的子域有效

使用用户名而不是电子邮件进行身份validation

我是Devise的新手,通过使用电子邮件地址作为身份validation密钥使其工作正常。 但是,我有一个需要用户名的用例,而我似乎无法让它工作。 我已经在users表中添加了一个字符串列“username”,将以下字段更改为:email到:登录表单中的用户名,并将devise.rb中的身份validation密钥更改为:username当我转到登录我遇到了这个提示:“请输入一个电子邮件地址”。 我究竟做错了什么? **new.html.erb** **User.rb** class User [:username] # Setup accessible (or protected) attributes for your model attr_accessible :email, :password, :password_confirmation, :remember_me, :username # attr_accessible :title, :body end **devise.rb** config.authentication_keys = [ :username ]

Twitter Bootstrap Modal没有弹出用户登录

当用户登陆我们的主页时,我无法将twitter引导弹出模式与设计登录/注册结合使用。 我花了一些时间实现不同的方法,但仍然没有成功。 截至目前,当我点击与模态相关联的“登录”按钮时,网站刷新但没有模态。 apps / views / layout / _header.html.slim(我的application.erb文件调用其他部分) li = link_to “Login”, “data-toggle” => “modal”, “data-target” => “#login_modal”, :class => “btn btn-small” li = link_to “Sign Up Free”, “data-toggle” => “modal”, “data-target” => “#sign_up_modal”, :class => “btn btn-small” 我有两个部分(sign_up_modal,login_modal)几乎相同… x Sign Up resource_name, :url => registration_path(resource_name)) do |f| %> true %> ‘btn btn-small […]