Tag: ruby on rails 4.2

将设计和omniauth处理为失败的Google oauth2

我正在尝试配置一个新的rails4.2应用来对Google Oauth2进行身份validation。 我似乎成功地完成了整个过程,但它被视为失败。 最初的授权似乎进展顺利,直到谷歌发送回调。 然后它似乎被错误地识别为失败。 给出的错误消息是: Could not authenticate you from Google because “Invalid credentials”. 我已经google了解决方案,但无济于事。 是否可以打开其他日志记录以了解它为什么选择通过故障方法进行处理? 这是请求的日志: Started GET “/users/auth/google” for 127.0.0.1 at 2016-04-17 09:37:33 +0800 Started GET “/users/auth/google/callback?state=<>&code=<>” for 127.0.0.1 at 2016-04-17 09:37:45 +0800 Processing by Users::OmniauthCallbacksController#failure as HTML Parameters: {“state”=>”<>”, “code”=>”<>”} Redirected to http://test_app.dev/sign_in Completed 302 Found in 1ms (ActiveRecord: 0.0ms) 在测试时,我点击了谷歌提示我的时候允许,并且url看起来很好,那么为什么这个被处理好像是失败的呢? […]

如何避免Devise从引擎内部进行身份validation?

我在我的主应用程序中使用Devise进行身份validation,并且我使用“http_basic_authenticate_with”构建了一个API(用于PABX),当我将before_action :authenticate_user!, except: [:method_name]到我的控制器时,它运行良好。 我这样做是因为except: [:method_name]不需要在Devise上记录用户会话,我只想对这些API控制器使用基本身份validation。 config/routes.rb (主应用程序) scope module: ‘api’ do scope module: ‘pabx’ do scope ‘/api/pabx’ do get ‘/accounts/phone_number/:phone_number’, to: ‘accounts#phone_number’ end end end controllers/api/pabx/accounts_controller.rb (主要应用) class Api::Pabx::AccountsController < ApplicationController http_basic_authenticate_with name: 'some_name', password: 'some_password' before_action :authenticate_user!, except: [:phone_number] skip_before_filter :verify_authenticity_token # POST api/pabx/accounts/phone_number.json def phone_number … end end 当我想在Engine中执行与API类似的操作时,问题就出现了。 当我尝试访问路由时,Devise似乎不允许在没有身份validation的情况下访问它,即使我正在使用before_action :authenticate_user!, except: […]

存储访问器问题:无法在Rails 4中的mysql数据库中读取旧的已存储的json对象序列化(哈希)值

我正在从Rails 3.2.8升级我的应用程序到Rails 4.2.4。 对于序列化的表’社论’,我有一个’extras’属性 store :extras, accessors: [:attr1, :attr2, :attr3], coder: JSON #The way it is stored in **Rails 3** is — :attr1: value :attr2: value :attr3: value #The way it is stored in **Rails 4** is {“attr1″:”value”, “attr2″:”value”, “attr3″:”value”} 当我获取我的应用程序在rails 3中时创建的旧记录的问题,它给我带来了错误 JSON::ParserError: 795: unexpected token at ‘— 但是当我创建新记录时,它正常工作。 还没有任何线索,如何让它在Rails 4中运行

Rails 4.2无法识别我的模型问题

版本有多大区别! 在我的Rails 3.2应用程序中,我使用了关注点,它们的设置如下: – –app –models category.rb product.rb –concerns –category third_party_a.rb third_party_b.rb –product third_party_a.rb third_party_b.rb –warehouse third_party_a.rb third_party_b.rb 我有同名的问题,命名空间到不同的目录。 这就是我被教导如何做到这一点,它比Rails 4.2默认将一堆Ruby文件集中在一个关注目录中更有意义。 如果我有多个对象需要与多个第三方API交互,那么这是最好的方法。 但是,将此应用程序升级到Rails 4.2,它拒绝工作。 关于这些问题,我收到很多,很多,很多抱怨: Unable to autoload constant Category::ThirdPartyA 它“期望文件定义它”或其他东西。 该文件如下所示: module EbayInteraction extend ActiveSupport::Concern module ClassMethods … 不,那里没有其他命名空间。 但是Rails 3.2并不需要它。 它完美无缺。 所以我进入文件并将声明更改为: module Category::ThirdPartyA 我不知道这是否正确。 我对模块和命名空间感到很困惑,这两个概念对我来说都没有任何意义。 然后我进入模型本身并include的关注: include Category::ThirdPartyA 我越过错误。 然后抱怨ThirdPartyB,所以我也这样做。 等等。 当我完成后,我现在得到这个投诉: […]

未初始化的常量ActionController :: Routing(NameError)

我试图在Linux服务器上部署我的应用程序时收到此错误。 Versãoservidor:x86_64-pc-linux-gnu上的PostgreSQL 9.3.4,由x86_64-pc-linux-gnu-gcc编译(Gentoo 4.8.1-r1 p1.2,pie-0.5.7)4.8.1,64-位 uninitialized constant ActionController::Routing (NameError) /home/divulgapocos/apps_rails/divulgapocos/config/initializers/new_rails_defaults.rb:14:in `’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/engine.rb:652:in `block in load_config_initializer’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-4.2.1/lib/active_support/notifications.rb:166:in `instrument’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/engine.rb:651:in `load_config_initializer’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/engine.rb:616:in `block (2 levels) in ‘ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/engine.rb:615:in `each’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/engine.rb:615:in `block in ‘ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in `instance_exec’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in `run’ /opt/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.2.1/lib/rails/initializable.rb:55:in `block in run_initializers’ /opt/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each’ /opt/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component’ /opt/ruby-2.0.0/lib/ruby/2.0.0/tsort.rb:210:in `block (2 levels) in each_strongly_connected_component_from’ […]

Rails 4具有角色的身份validation模型

我是Rails世界的初学者,所以希望我能在这里找到答案。 我正在开发的项目必须具有角色的用户授权,适用于简单用户和管理员。 使用管理员权限,我希望能够为简单用户重置密码或为其添加角色。 我试图将Devise与cancancangem一起使用,但不幸的是,它无法使其工作,我不确定这是否可行。 所以我的问题是你会建议哪些gem有这样的行为。 或者从头开始更简单? 谢谢您的回答。

Rails国际化不在生产模式下工作

我有一个非AR模型,我用它来表单/组合对象。 有很多输入字段,我收集这些字段是为了在AR事务中进行一些数据操作。 我使用I18n进行国际化。 阳明: pl: activemodel: attributes: catalog/checkout: name: Imię 形成: = f.input :name, required: true, label: I18n.t(:’.activemodel.attributes.catalog/checkout.name’) 问题是在开发和生产模式(本地)中我看到输入具有从config/locales获取的适当标签,但在生产服务器上它表示 “translation missing: pl.activemodel.attributes.catalog/checkout.name” 它只发生在这种非AR模型中 – 在其他任何地方I18n工作得非常好。 有什么想法吗? 编辑 登录到生产服务器的控制台: I18n.reload! #=> nil I18n.t(:’.activemodel’).keys #=> [:errors, :attributes] # attributes is what wee need 但 I18n.t(:’.activemodel.attributes’) #=> “translation missing: pl.activemodel.attributes” WTH?… 编辑#2 我必须注意到,有 pl: activemodel: attributes: catalog/checkout: errors: […]

Rails gem更新不起作用(版本4.1.1到4.2.0)作为“警告:循环参数引用”错误的解决方案

当我运行任何类型的rake命令时,我不断收到以下错误,特别是rake db:seed将在不完成的情况下中止: $ rake db:seed /Users/rachel/.rvm/gems/ruby-2.2.0@rails4.2/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference – now rake aborted! ActiveRecord::UnknownAttributeError: unknown attribute: description 我做了一些研究,发现这是一个错误(我认为?)由Rails 4.1.9中不兼容的gem引起,所以我希望创建一个新的rvm来将Rails更新到4.2.0,这样我就可以继续我的项目了。 但是,每次我尝试更新Rails时都会说“已安装”,但无法实际安装到我创建的ruby版本中。 这是我尝试更新Rails时的典型命令行模式: $ rvm gemset create rails420 ruby-2.2.0 – #gemset created /Users/rachel/.rvm/gems/ruby-2.2.0@rails420 ruby-2.2.0 – #generating rails420 wrappers…….. $ rvm 2.2.0@rails420 $ gem install rails -v 4.2.0 Fetching: rails-4.2.0.gem (100%) Successfully installed rails-4.2.0 Parsing documentation for […]

使用Paperclip和AWS S3的自定义URL

我们正在使用带有aws-sdk gem的Paperclip在我们的Rails应用程序中存储和显示图像: class User ‘, medium: ‘600×600>’, thumb: ‘200×200>’ }, default_url: ‘missing_photo.png’ end 如果我在html.erb文件中使用 ,我会得到以下HTML: <img src="https://s3.amazonaws.com//users/images/000/000/001/medium/my_image.png?1419989041″> 。 如何将https://s3.amazonaws.com/作为自定义URL(如https://example.com ? 我的域名全部设置在Cloudfront及其SSL证书中。 我查阅了Paperclip S3 Storage文档 。 有一个:url选项,但我为该选项编写的任何内容似乎都无效。

使用Globalize&Friendly_id将同一页面重定向到不同的语言

过去几个小时我一直在摸不着头脑,寻找答案,但我找不到任何地方。 我的gem文件: # Use globalize for translating models gem “globalize”, github: “ncri/globalize” # for Rails 4.2 gem ‘globalize-accessors’, ‘~> 0.1.5’ # Use friendly_id for slugs gem ‘friendly_id’, ‘~> 5.1.0’ gem ‘friendly_id-globalize’, ‘~> 1.0.0.alpha1’ 这是情况: 我有两种语言“en”和“fr” 2个模型:pages和pages_translations页面有一个slug列,pages_translations也有一个slug列。 如果我查看页面 – > en / pages / slug-en,它可以工作。 如果我查看页面 – > fr / pages-slug-fr,它可以工作。 所以我假设friendly_id和globalize已正确配置。 但是我的问题是我不能使用以下语言切换器: 路线变为en / pages […]