Tag: 设计

Rails&Devise:设计未在rails控制台中显示的特定列

我试图在我的用户模型上使用Devise,但是当我进入rails控制台并尝试User.new我只得到: irb(main):002:0> User.new => # 为什么设计列没有出现? CreateUsers迁移: class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :first_name t.string :last_name t.string :email t.timestamps null: false end end end AddDeviseToUsers迁移: class AddDeviseToUsers < ActiveRecord::Migration def self.up change_table :users do |t| ## Database authenticatable t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" […]

rails设计edit_user_password_path

我无法路由到项目的edit_user_password_path。 它只是路线到家。 有人可以帮忙吗?

sign_in_and_redirect如何设计工作?

if @user.persisted? sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated set_flash_message(:notice, :success, :kind => “Facebook”) if is_navigational_format? else session[“devise.facebook_data”] = request.env[“omniauth.auth”] redirect_to new_user_registration_url end 这种方法存在于facebook omniauth callbacks controller 。 我面临的问题是我没有从facebook获取用户的电话号码,因此@user不是有效的对象(我有validation )。 所以,我想将用户重定向到另一个我可以询问电话号码的页面。 如何修改sign_in_and_redirect @user以将我重定向到该页面而不是根url。

ActiveAdmin with Devise Rails登录两次

我有一个Rails应用程序已经设置为使用User模型的devise 。 我只是添加了ActiveAdmin ,它使用了一个单独的模型名称AdminUser 。 这个新模型也使用了设计。 我遇到的问题是: 当我转到localhost:3000/admin – 管理员登录页面时,应用程序首先将我引导至localhost:3000/users/sign_in – 一般用户登录页面。 换句话说,要进入管理页面,我必须登录两次。 有没有什么办法解决这一问题?

“警告:无法validationCSRF令牌真实性”错误 – 使用Devise的CORS和:token_authenticatable

我有一个单页面应用程序使用CORSvalidation到另一个域。 所有请求都是JSON请求。 我的应用程序可以validation确定,可以使GET请求正常。 身份validation使用token_authenticatable。 即所有请求附加’?auth_token = whatever’ 所以,我的实际问题是,当我尝试执行PUT请求时,我得到一个警告:无法在rails日志中validationCSRF令牌真实性消息以及CanCan :: AccessDenied(您无权访问此页面。 )例外。 只需将skip_before_filter :verify_authenticity_token添加到rails控制器即可解决问题。 因此,我只能得出结论,我的ajax请求发送的是无效或空的csrf_token。 我真的不明白这是怎么回事,因为我相信我正确地发送了每个ajax请求的X-CSRF-Token报头。 基本上,我的应用程序validation并且Devise发送回auth_token和csrf_token: render :status => 200, :json => { :auth_token => @user.authentication_token, :csrf_token => form_authenticity_token } 然后我在我的ajax应用程序中存储这些标记,并在jQuery中使用ajaxSend ,设置它以便jQuery通过每个请求传递这些标记: initialize: -> @bindTo $(document), ‘ajaxSend’, @appendTokensToRequest appendTokensToRequest: (event, jqXHR, options) -> if not @authToken? then return if @csrfToken? jqXHR.setRequestHeader ‘X-CSRF-Token’, @csrfToken if options.type […]

rails设计httpvalidation移动设备

我正在尝试在使用Devise gem的rails app上validation我的服务器ruby的android客户端应用程序。 但我已经尝试过http身份validation,并发布了身份validation请求,服务器只响应任何给定用户名/密码200。 我已经在用户模型中设置了config.http_authenticatable = true和:database_authenticable … 我会发布我的身份validation方法,所以你们可以看看它… public static boolean authenticate(User user, String verb) throws IOException, JSONException { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(verb); CredentialsProvider credProvider = new BasicCredentialsProvider(); credProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(user.getMail(), user.getPassword())); httpClient.setCredentialsProvider(credProvider); List nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair(“email”, user.getMail())); nameValuePairs.add(new BasicNameValuePair(“password”, user.getPassword())); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); […]

设计i18n的属性?

如何翻译Devise模型的属性? 例如session.email或session.remember_me 。 两个层次结构 de: devise: sessions: email: “E-Mail” 和 de: activerecord: attributes: session: email: “E-Mail” 不工作。 什么是正确的标识符?

无法在任何来源中找到bcrypt-3.1.7

我已经使用该命令安装了bcrypt gem install bcrypt 我可以确认它安装在我的gem文件夹中本地和@global,它是正确的版本’3.1.7’。 并且……我在项目中添加了以下行: gem’bcrypt’,’〜> 3.1.7′ 当我运行bundle install时,我得到了这个…… 你的包很完整! 但是,当我发出此命令时: rails generate devise:install 我得到以下…… Could not find bcrypt-3.1.7 in any of the sources Run `bundle install` to install missing gems. user-pc:blog user$ 我甚至跑了: 捆绑列表 我得到一个已安装捆绑包的列表,bcrypt 3.1.7显示!!

Rails创建事务

在创建新用户(在我的用户模型中)时,我也想创建一个条带客户。 只有当他们一起成功时才能完成这两项行动(就像我不希望没有用户的客户,反之亦然)。 出于这个原因,我认为将它们包装在一个事务中是个好主意。 但是,我一定不能正确地做到这一点。 我不相信我正确覆盖了create方法。 如果有人有一个建议作为更好的方式来做到这一点或我做错了,将不胜感激。 谢谢! def create User.transaction do super create_stripe_customer(self) end end def destroy User.transaction do super delete_stripe_customer(self) end end

Warden身份validation召回401 Unauthorized

我尝试使用全新的rails应用程序设置设计,我已使用gemfile和bundle install正确安装 以下使用rails生成设计devise:install 使用rails generate devise用户创建了一个新模型 rake db:migrate来创建用户表 添加了devise_for :users do get ‘users/sign_out’, :to => ‘devise/sessions#destroy’ end用于我的浏览器注销 运行rails服务器 转到localhost:3000 / users / sign_up以创建新用户 转到localhost:3000 / users / sign_out将他注销 转到localhost:3000 / users / sign_in并尝试再次登录并失败并返回以下内容并将我发送回登录屏幕而不登录 Started POST “/users/sign_in” for 127.0.0.1 at 2012-07-13 16:55:28 +0800 Processing by Devise::SessionsController#create as HTML Parameters: {“utf8″=>”✓”, “authenticity_token”=>”cbFEP0FJ/e2XYHfub3ZeI7nEX0nCheXzCDs2ner3Zw8=”, “newuser”=>{“email”=>”henghong.lee@gmail.com”, “password”=>”[FILTERED]”, “remember_me”=>”0”}, “commit”=>”Sign in”} […]