Tag: ruby on rails

Heroku Scheduler:CreditsController的未定义局部变量或方法`params’:Class

我正在尝试使用Heroku Scheduler自动执行任务。 我在本地测试了这个任务并且它有效。 我创建了一个临时路线进行测试,每当我点击路线时它都有效: get ‘create_expired_credit_lines’ to: ‘credits#create_expired_lines’ credits.controller.rb class CreditsController < ApplicationController … def self.create_expired_lines … @new_credit = Credit.new(params[:credit]) … end 然后我创建了一个文件 app/lib/tasks/scheduler.rake desc “This task is called by the Heroku scheduler add-on” task :create_expired_credit_lines => :environment do puts “Creating expired credit lines…” CreditsController.create_expired_lines puts “done.” end 当任务执行时,我收到以下错误: 2014-03-20T21:42:11.190318+00:00 app[scheduler.4496]: undefined local variable or […]

Rails / Carrierwave gem – 如何以JSON格式访问图像上传数据?

Carrierwave gem允许我使用户能够上传一个或多个图像(例如,化身)并在Rails生成的页面上显示这些图像,因此: 我想知道是否可以将图像数据检索为JSON,以便我收到如下所示的JSON响应: [ { “title”: “The Title”, “description”: “The description”, “url”: “the/url”, “thumbnail: “the/thumbnail/url” } ]

GroupingError:ERROR:列必须出现在GROUP BY子句中或用于聚合函数

我的控制器中的代码是按最高平均评价等级排名的专辑(此解决方案中使用的代码如何通过has_many评论关系显示评分最高的专辑 ): @albums = Album.joins(:reviews).select(“*, avg(reviews.rating) as average_rating”).group(“albums.id”).order(“average_rating DESC”) 这段代码在我的开发环境(sqlite3)中运行得很好,但是当我将代码推送到heroku和postgresql时,我遇到了这个错误: PG::GroupingError: ERROR: column “reviews.id” must appear in the GROUP BY clause or be used in an aggregate function 我意识到这是一个相当普遍的问题,我对SQL有点缺乏经验,所以我在重构代码时遇到了麻烦,因此它可以在我的开发和生产环境中工作。

*** RuntimeErrorexception:ActionView :: Helpers :: ControllerHelper#response委托给controller.response,但是控制器是nil

当我尝试运行端点的api规范时,我遇到了一个问题。 当我运行规范并检查响应时,它说: *** RuntimeError Exception: ActionView::Helpers::ControllerHelper#response delegated to controller.response, but controller is nil: #<RSpec::Core::ExampleGroup::Nested_1::Nested_1::Nested_1:0x007faeb4852b08 我在controllers / api / v1 / catalog_controller.rb下有一个控制器 class Api::V1::CatalogController < ApplicationController def search …some stuff here… render json: {some_response} end end 它的匹配规范在spec / controllers / api / v1 / catalog_controller_spec.rb下 describe Api::V1::CatalogController do describe “searching” do before(:all) do @title = FactoryGirl.create(:title, […]

过滤链停止为:validate_sign_up_params呈现或重定向 – devise_token_auth

我正在使用devise_token_auth作为身份validation来处理 rails API上的ruby,每次我从postman google chrom扩展程序进行API调用时我都会收到此错误。下面是我的设置 的Gemfile gem ‘devise’ gem ‘omniauth’ gem ‘devise_token_auth’ gem ‘byebug’ gem ‘rack-cors’, :require => ‘rack/cors’ 的routes.rb mount_devise_token_auth_for ‘User’, at: ‘auth’ application_controller.rb include DeviseTokenAuth::Concerns::SetUserByToken before_action :authenticate_user! , :except=>[:new, :create] 用户模型: devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :omniauthable include DeviseTokenAuth::Concerns::User after_initialize :set_provider #, :set_uid def set_provider byebug self[:provider] = “email” if […]

在heroku上实现邪恶的pdf的问题

我正在使用本指南在heroku上集成wicked_pdf。 但不知何故它似乎没有用。 我从heroku获得了日志,它说: Processing PdfController#get_pdf to pdf (for 115.248.175.50 at 2011-02-15 23:54:44) [GET] Parameters: {“format”=>”pdf”, “action”=>”get_pdf”, “id”=>”1”, “controller”=>”pdf”} ***************WICKED*************** Rendering pdf/get_pdf RuntimeError (PDF could not be generated! /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:73:in `exec’: No such file or directory – /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/bin/wkhtmltopdf-amd64 – – (Errno::ENOENT) from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:73:in `popen3′ from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:59:in `fork’ from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:59:in `popen3′ from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:57:in `fork’ from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:57:in `popen3′ from […]

同时使用帐户和用户表与Devise

我正在使用Rails 3.1.0和Devise 1.4.8,对我们两个都是新手。 我想允许多个用户使用帐户。 第一个注册用户创建帐户(可能是他们的公司),然后该用户可以添加更多用户。 用户始终只链接到一个帐户。 我有用户和帐户表。 缩写模型: class User < ActiveRecord::Base belongs_to :account devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :lockable, :timeoutable attr_accessible :email, :password, :password_confirmation, :remember_me end class Account :destroy attr_accessible :name, :account_type end 问题是,当第一个用户注册时,如何创建帐户和用户? 我是否需要修改/覆盖Devise registrations_controller,就像这里的答案一样? 我无法弄清楚如何创建帐户然后将其传递给Devise以创建用户。 account_id已在User模型中。 我应该将account_name和account_type添加到User模型,如果未传入account_id,还要创建一个新的Account记录? 在这种情况下,我试图隐藏Devise中的帐户创建,但不确定是否可行,因为我仍需要在注册页面上提示account_name和account_type。

同一资源的两个页面–ActiveAdmin

目前我有User模型,它在user.rb注册为ActiveAdmin的新资源。 生成的页面显示具有范围的所有用户( all / journalists / startup_employees )。 现在我想为同一资源和相同的范围创建另一个页面,但是应该只有waiting字段设置为true记录(并且前一页应该仅显示以下内容:waiting => false )。 我怎么能这样做? 我知道我可以用filter做到这一点,但我需要两个单独的页面,菜单中有两个链接。 //解决方案 它比建议更容易(谢谢你们!): ActiveAdmin.register User, :as => ‘Waitlist User’ do menu :label => “Waitlist” controller do def scoped_collection User.where(:waitlist => true) end end # code scope :all scope :journalists scope :startup_employees end ActiveAdmin.register User do controller do def scoped_collection User.where(:waitlist => false) […]

从Rails 2.3.8升级到4.0

我在Rails 2.3.8上运行一个应用程序。 我打算将它升级到Rails 4.0(在RC中)。 对我来说最简单的方法是什么? 我是否需要先升级到Rails 3.x? 注意:在我目前的实施中,我使用的是椋鸟和雪貂; 作为升级的一部分,我也在考虑转向sidekiq和太阳黑子

在PostgreSQL中执行此小时的操作查询

我在RoR堆栈中,我必须编写一些实际的SQL来完成所有“打开”记录的查询,这意味着当前时间在指定的操作时间内。 在hours_of_operations表中,两个integer列opens_on和closes_on存储工作日,两个time字段opens_at和closes_at存储一天中的相应时间。 我做了一个查询,将当前日期和时间与存储的值进行比较,但我想知道是否有一种方法可以转换为某种类型的日期类型并让PostgreSQL完成其余的工作? 查询的内容是: WHERE ( ( /* Opens in Future */ (opens_on > 5 OR (opens_on = 5 AND opens_at::time > ‘2014-03-01 00:27:25.851655’)) AND ( (closes_on 5) OR ((closes_on = opens_on) AND (closes_at::time ‘2014-03-01 00:27:25.851655’)) OR ((closes_on = 5) AND (closes_at::time > ‘2014-03-01 00:27:25.851655’ AND closes_at::time < opens_at::time))) OR /* Opens in Past */ […]