# in views/device/registration/new.html.erb:
<% password = Devise.friendly_token.first(8) %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name, :locale => I18n.locale)) do |f| %>
<%= f.hidden_field :password, :value => password %>
<%= f.hidden_field :password_confirmation, :value => password %>
<%= f.email_field :email %>
<%= f.submit "sign up" %>
<% end %>
# in views/device/mailer/confirmation_instructions.html.erb:
<p>Your Password: <%# @ressource.password %></p>
Run Code Online (Sandbox Code Playgroud)
我正在为新用户生成密码.用户收到确认电子邮件,这应该是放置生成密码的正确位置.(确认后可以发给他密码)
但在电子邮件@ resource.password是零!
如何在设备确认电子邮件中发送给定密码?替代方案可能是在没有加密的情况下将pwd存储在db中,但我也没有成功.
我有问题从facebook获取生日信息到我的应用程序.最大的问题是误解了FB的权限页面:http: //developers.facebook.com/docs/authentication/permissions/
这里的生日被描述为user_birthday.但那不是你怎么能从反应中抓住它.我找到了一个非常简单的解决方案.
我有这个想法,我希望"登录"显示在我的网页的上角user_signed_in?是真的,但是当它user_signed_in?是假的时候我希望它只是简单地放"登录".
user_signed_in?是Devise的辅助方法.我认为.
我如何实际完成这项工作.我试过这个:
<%= if user_signed_in? => true puts "Logged In" else puts "Login" %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有任何想法吗 ?
我实际上正在开发Spree电子商务解决方案,我想个性化" 帐户 "视图(127.0.0.1:3000/account),但我无法在Spree的核心中找到它.
我也在搜索spree_auth_devise Gem来个性化它,但我无法理解它是如何工作的.
在狂欢的文档中找不到正确的方法.
如果有人有线索,我会打开(:
我要过去了
{"email":"invalidemail@gibberish.com"}
Run Code Online (Sandbox Code Playgroud)
作为参数.
我得到200一个零身体的回应.为什么我看不到401?
当我运行第一个
User.where('email = ?', params[:email]).first
Run Code Online (Sandbox Code Playgroud)
在控制台中查询,我得到零.我也试过密码,测试无效密码.在控制台中,它失败了.但我200在这里得到回应:
def sign_in
user = User.where('email = ?', params[:email]).first
if !user
render :json => user, status => 401
return
end
if user.valid_password?(params[:password])
render :json => user
return
end
render :json => user, status => 401
end
Run Code Online (Sandbox Code Playgroud) 看来我在这里只停留在一个简单的点 - 我有一个名为"User"的模型,其中一个名为"username"的字段设置为唯一.
让我们假设我的网站上有新访问者,想要注册,必须选择用户名并点击"注册".在这种情况下,我的字段"username"必须是attr_accessible.
我现在想要完成的是当用户编辑他/她的帐户时,字段"用户名"不再可编辑.
我怎么能意识到这一点?
Bouns-Karma:我正在使用带有设计的CanCan,因此具有admin-role的用户可以改变给定用户的用户名的解决方案将是超级的!我的想法告诉我"除非user.admin?" 但是我的编码时间太长了.
无论如何 - 我希望会有一些答案:)
我是新的rails身份验证和devise用于此目的.
我正在按照本教程进行安装 - http://blog.blazingcloud.net/2011/01/08/devise-authentication-in-rails-3/
以下是我为安装而采取的步骤 -
gem 'devise' 在我的GEM文件中.devise.rb并20130320174736_devise_create_users.rb如教程中所示.rake db:migrate第4步后发生以下错误 - rake aborted! cannot load such file -- omniauth

我用Google搜索了第一个想出这个链接 - Ruby on Rails - 在'require':无法加载这样的文件 - omniauth/oauth,即使我安装了omniauth < - 这个链接建议安装另一个gem omniauth
但是我检查另外2个链接,他们所提出的建议联合国注释的行config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'下monkeytasks\config\initializers\devise.rb
我不知道要跟随哪一个我之前尝试安装,Act As Authenticated但后来才知道它没用(坦率地说我也不确定是否设计在本地使用)
让我知道处理和删除此错误的正确方法.如果需要更多信息,请告诉我.
我正在尝试将Devise集成到我的Rails应用程序中,但遇到了麻烦.
我想在我的页面中呈现用户注册表单:
我跑了rails generate devise:views,得到了:
invoke Devise::Generators::SharedViewsGenerator
create app/views/devise/shared
create app/views/devise/shared/_links.erb
invoke form_for
create app/views/devise/confirmations
create app/views/devise/confirmations/new.html.erb
create app/views/devise/passwords
create app/views/devise/passwords/edit.html.erb
create app/views/devise/passwords/new.html.erb
create app/views/devise/registrations
create app/views/devise/registrations/edit.html.erb
create app/views/devise/registrations/new.html.erb
create app/views/devise/sessions
create app/views/devise/sessions/new.html.erb
create app/views/devise/unlocks
create app/views/devise/unlocks/new.html.erb
invoke erb
create app/views/devise/mailer
create app/views/devise/mailer/confirmation_instructions.html.erb
create app/views/devise/mailer/reset_password_instructions.html.erb
create app/views/devise/mailer/unlock_instructions.html.erb
Run Code Online (Sandbox Code Playgroud)
land.html.haml
= render 'devise/registrations/new'
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
Missing partial devise/registrations/new with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :haml]}. Searched in:
* ".../app/views"
* ".../.rvm/gems/ruby-2.0.0-p0@startupcrawler/gems/devise-1.5.4/app/views"
Run Code Online (Sandbox Code Playgroud)
这也行不通.
= render 'users/registrations/new'
Run Code Online (Sandbox Code Playgroud)
我配置错了吗?
新手到这里的铁路,所以忍受我.
使用ruby 2.0的Rails 4上的新应用程序,我安装了Devise并按照说明(默认root等).在github上设计自述文件说它应该与rails4兼容但是
我看到像这样的堆栈溢出问题,但很多答案直接进入了一些复杂的谈话.我得到我需要为质量分配指定允许的属性,但是如何?在哪里?哪些属性需要被允许,所有这些属性?只有我希望同时更改/创建的那些?
从错误判断我会创建一个从Devise :: registrationsController继承的registrations_controller.rb吗?我在那里指定了什么?
任何一步一步,新手友好的答案非常感谢.我已经用尽了自己尝试从这里的答案和谷歌搜索的各种网站的不同代码.
有两个问题:
如何让simple_form_for与奇异资源一起使用:与用户相关联的foo_object(参见下面的代码摘录)?我得到NoMethodError:未定义的方法foo_objects_path为@foo在simple_form_for行.foo_object_path有一个有效的路径,但似乎simple_form_for是使用复数版本.我已经google'd并阅读有关奇异资源和路径问题的SO帖子,但还没有找到解决方案.
我是否需要为:foo_object创建嵌套资源,因为它与:user相关联?如果是,那么它会与Devise的用户模型冲突吗?
路线:
devise_for :users
resource :foo_object
Run Code Online (Sandbox Code Playgroud)
模型:
:user is the Devise User's model and has_one :foo_object
:foo_object belongs_to :user
Run Code Online (Sandbox Code Playgroud)
查看(haml):(更新6/27/13:更正为=来自 - )
= simple_form_for @foo do |f|
= f.input :firstname
= f.input :lastname
= f.button :submit
Run Code Online (Sandbox Code Playgroud)
希望很清楚.谢谢.