Tag: ruby on rail

如何在Doorkeeper :: TokenController上使用before_action

我在使用Doorkeeper :: TokensController时遇到了麻烦。 我想在访问令牌被要求之前执行一些代码(如果它是否已创建,我想要使用before_action进行记录)(默认路由是POST /oauth/token / Doorkeeper::TokensController#create 。 我通过以下方式跟踪了这里的文档: 配置/ routes.rb中 use_doorkeeper do controllers tokens: ‘oauth/access_tokens’ end 应用程序/控制器/ access_tokens_controller.rb class Oauth::AccessTokensController < Doorkeeper::TokensController before_action :log_auth, only: [:create] def log_auth puts "I want to log here" end end 但是当我执行POST /oauth/token ,我有以下错误消息: ActionController :: RoutingError(Oauth :: AccessTokensController的未定义方法’before_action’:Class): app / controllers / oauth / access_tokens_controller.rb:2:在’class:AccessTokensController’中 app / controllers […]

允许使用OmniAuth访问Rails Web应用程序的Curl API

我正在构建一个Rails Web应用程序。 我使用OmniAuth进行身份validation。 我想提供API访问权限,但只有在用户使用OAuth(主要通过Twitter)validation自己之后。 有什么建议从哪里开始? 编辑:根据要求添加更多上下文 不要试图成为Oauth提供者,而只是使用相同的登录令牌。 例如,您通过Twitter登录我的应用程序。 您同时拥有令牌和秘密OAuth令牌。 我想使用这些令牌来允许用户API访问该站点。 我有一个类似的问题: 从Faraday OAuth模块(从客户端)检索OAuth令牌(在服务器上)

Delayed_job锁定但不处理

我正在尝试解决delayed_job的问题。 出于某种原因,我看到很多作业locked_by和locked_at,但没有任何处理被排除在队列之外。 为什么会发生这种情况或如何让它继续前进的任何提示? 我正在使用Rails 2.3.11和Ruby 1.9.2p0 谢谢!

如何让第一个用户成为Devise gem的管理员?

我想让第一个用户成为管理员。 所以我有字符串属性管理员,我需要在filter或覆盖Devise注册控制器之前做一些。 就像是: if User.first? User.admin = “admin” User.save end 这是设计注册行动 def new resource = build_resource({}) respond_with resource end 有什么比这更好的方法呢?

更改Devise的sign_in url

在使用before_filter:athenticate用户时,如何更改Devise的登录路径? 我在post控制器中有以下内容。 例如: class PostsController < ApplicationController before_filter :authenticate_user! def index @posts = Post.all end end 目前它会自动转到’/ users / sign_in’ 我想使用’/ login’

如何在引发exception时保留响应头?

我正在使用rack-cors在我们的API请求中添加CORS响应头。 当请求成功时它工作正常(200)。 但是当应用程序通过authenticate_user!引发exceptionActiveRecord::RecordNotFound (404)或设计 /无效凭据时authenticate_user! (401) – 它没有响应CORS响应头。 它不仅适用于机架式。 它不响应在引发exception之前添加的任何自定义标头。 最大的问题是在客户端(浏览器),因为它不是根据状态代码显示正确的错误,而是显示: XMLHttpRequest无法加载http://development.com:4000/orders/1 。 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此,不允许来源“ http://development.com:3000 ”访问。 如果我手动捕获exceptionrescue_from并render json: {}, status: 500它会响应标题。

在Rails中更改scaffold-controller-generator-templates

当我使用Rails脚手架生成器创建我的Rails文件时,它会创建一个控制器文件。 例如 rails generate scaffold potato 产生: app/controllers/potatos_controller.rb 对于我的项目,我希望这个文件更具体一点。 例如,我想更改此自动生成的操作: def create @potato = Potato.new(potato_params) respond_to do |format| if @potato.save format.html { redirect_to @potato, notice: ‘Potato was successfully created.’ } format.json { render :show, status: :created, location: @potato } else format.html { render :new } format.json { render json: @potato.errors, status: :unprocessable_entity } end end […]

测试rails葡萄API与curl,params数组

我使用curl手动测试我的rails应用程序葡萄API。 我想发送一个[1,2,3]数组作为请求查询参数,以便可访问,如: p params[:tickets_ids] => [1,2,3] 我只发现了如何发送被解释为哈希的东西的线索。 我将非常感谢如何使用curl发布数组。

将密码迁移到Devise

我是从PHP到Rails的迁移用户数据库。 我已经安装了Devise Gem,它现在运行良好。 另外,我发现了如何将现有用户的密码迁移到Rails的提示我已经将旧密码添加到与Devise保持相同的encrypted_password字段中,因此当设计无法validation时,检查旧密码: # user.rb def valid_password?(password) return false if encrypted_password.blank? require ‘digest/sha1’ password_salt = ‘my_php_framework_salt’ Devise.secure_compare(Digest::SHA1.hexdigest(password_salt+password), self.encrypted_password) end 它允许使用旧密码登录,但不适用于新用户的原始Devise密码。 我认为这个valid_password? 对于设计密码,方法应该return true 。 如何解决这个问题?

Pails与Rails以及用户,管理员和角色模型

继Rails_admin之后:我应该有admin_user或具有admin角色的用户来管理用户和管理面板我想要采用Pundit来实现其应用程序的策略优雅。 该应用程序具有用户模型和管理员模型 – 一个用于客户,另一个用于员工。 它也是多租户,但不应该对这个问题造成严重影响。 我还希望有一个单独的角色模型,允许客户根据需要混合和匹配他们自己的“标题”。 这在实施中也不应该非常困难。 困难的部分是支持Pundit策略以支持两种不同的用户模型 – 用户(客户)和管理员(员工)。 是否应该使用pundit_user方法将Admin或User设置为pundit_user(基于通过current_user和current_admin_user的可用性),或者是否有另一种方法。 我没有找到关于这个用例的很好的文档(除了github上的短线 )。 def pundit_user if !current_admin_user.nil? current_admin_user elsif !current_user.nil? current_user else nil end end