小编Mat*_*ski的帖子

存储库“ http://dl.google.com/linux/chrome/deb稳定发行版”未签名

在CircleCi设置中,我需要执行以下步骤来安装Google Chrome:

  - run:
      name: Install Chrome headless
      working_directory: /
      command: |
        wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
          echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list && \
          apt-get update && \
          apt-get install -y dbus-x11 google-chrome-unstable && \
          rm -rf /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)

它停止工作并返回以下错误消息:

W: GPG error: http://dl.google.com/linux/chrome/deb stable Release: The following signatures were invalid: EXPKEYSIG 1397BC53640DB551 Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>
W: The repository 'http://dl.google.com/linux/chrome/deb stable Release' is not signed.
N: Data from such …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu apt google-chrome

26
推荐指数
2
解决办法
6083
查看次数

RuntimeError:无法修改冻结的数组

我将Ruby on Rails应用程序更新为Ruby on Rails 5.1.4.当我运行我的测试时,每个测试都会返回以下错误:

An error occurred while loading {path to specific spec file}
Failure/Error: require File.expand_path('../../config/environment', __FILE__)

RuntimeError:
  can't modify frozen Array
# ./config/environment.rb:6:in `<top (required)>'
# ./spec/rails_helper.rb:4:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

编辑:

我正在从5.0.0.1更新到5.1.4.

ruby ruby-on-rails ruby-on-rails-5

20
推荐指数
0
解决办法
3769
查看次数

Admin :: FaqsController的未定义方法`t':Class

在我的项目中,我在命名空间管理员中有控制器,我正在使用breadcrumbs_on_rails来构建breadcrums.我的控制器看起来像:模块管理员

class FaqsController < Admin::ApplicationController
    include FaqsHelper
    load_and_authorize_resource

   add_breadcrumb t('faqs.faqs_list') , :faqs_path #this line makes the problem
    def index
      @faqs = @faqs
      add_breadcrumb t('faqs.faqs_list')

    end

    def new
      add_breadcrumb t('faqs.new')
    end

 #other code ommitted
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以在新的,编辑和其他控制器动作中使用t方法但是当这个't'不在控制器动作中时,我有以下错误:

undefined method `t' for Admin::FaqsController:Class
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ruby-on-rails ruby-on-rails-3 rails-i18n ruby-on-rails-4

16
推荐指数
1
解决办法
5545
查看次数

未使用的参数传递给Capybara :: Queries :: SelectorQuery

我有这样的规格:

  it 'contains Delete link' do
    expect(page).to have_link('Delete', admin_disease_path(disease))
  end
Run Code Online (Sandbox Code Playgroud)

当我运行规范时,它会在控制台中返回警告:

Unused parameters passed to Capybara::Queries::SelectorQuery : ["/admin/diseases/913"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

ruby rspec ruby-on-rails capybara

16
推荐指数
1
解决办法
2851
查看次数

Rails 4关系#所有弃用

在我的应用中,我创建了最近的帖子功能.

 @recentposts = Post.all(:order => 'created_at DESC', :limit => 5)
Run Code Online (Sandbox Code Playgroud)

这个变量有些麻烦.当我运行测试时,我有以下错误:

弃用警告:不推荐使用Relation#all.如果您想要加载关系,可以调用#load(例如Post.where(published: true).load).如果要从关系中获取记录数组,可以调用#to_a(例如Post.where(published: true).to_a).(来自/home/mateusz/rails4/Bloggers/app/controllers/users_controller.rb:18上的节目)

我在Google上搜索解决方案,但我找不到它......

ruby-on-rails ruby-on-rails-4 rails-activerecord

14
推荐指数
2
解决办法
9149
查看次数

PostgreSQL条件where子句

在我的Ruby on Rails应用程序中,我使用了blazer(https://github.com/ankane/blazer),我有以下sql查询:

SELECT *
FROM survey_results sr
LEFT JOIN clients c ON c.id = sr.client_id
WHERE sr.client_id = {client_id}
Run Code Online (Sandbox Code Playgroud)

此查询非常有效.但我需要添加条件逻辑来检查client_id变量是否存在.如果是,那么我按这个变量过滤,如果没有,那么我不启动这个where子句.我怎么能在PostgreSQL中做到这一点?

ruby sql postgresql ruby-on-rails

9
推荐指数
1
解决办法
4319
查看次数

DEPRECATION WARNING:使用非属性参数调用的危险查询方法(其参数用作原始SQL的方法)

我将rails 5.1.4 app更新为5.2.0.我的一个模型中有以下范围:

  scope :by_category, lambda { |category_slug|
    category_ids = Category.find_by(slug: category_slug)&.subtree_ids
    where(category_id: category_ids)
  }
Run Code Online (Sandbox Code Playgroud)

由于该范围,Rails返回错误:

DEPRECATION WARNING: Dangerous query method (method whose arguments are used as raw SQL) called with non-attribute argument(s): "coalesce(\"categories\".\"ancestry\", '')". Non-attribute arguments will be disallowed in Rails 6.0. This method should not be called with user-provided values, such as request parameters or model attributes. Known-safe values can be passed by wrapping them in Arel.sql()
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

ruby ruby-on-rails ruby-on-rails-5.2

8
推荐指数
1
解决办法
2020
查看次数

每天创建的记录数

在我的PostgreSQL数据库中,我有以下架构:

CREATE TABLE programs (
    id integer,
    description text
);

CREATE TABLE public.messages (
    id integer,
    program_id integer,
    text text,
    message_template_id integer
);

CREATE TABLE public.message_templates (
    id integer,
    deliver_day integer
);

INSERT INTO programs VALUES(1, 'Test program');

INSERT INTO messages VALUES(1,1, 'Test message 1', 1);
INSERT INTO message_templates VALUES(1, 1);

INSERT INTO messages VALUES(2,1, 'Test message 2', 2);
INSERT INTO message_templates VALUES(2, 3);

INSERT INTO messages VALUES(3,1, 'Test message 3', 3);
INSERT INTO message_templates VALUES(3, 5);
Run Code Online (Sandbox Code Playgroud)

现在我想在程序的整个生命周期中获取每天发送的消息数量,查询结果应如下所示:

  day      count …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

8
推荐指数
1
解决办法
229
查看次数

Ruby on Rails平均方法导致n + 1个查询

我有以下脚本:

User.includes(:owned_ratings).map{|x| x.owned_ratings.average(:score)}
Run Code Online (Sandbox Code Playgroud)

调用x.owned_ratings.average(:score)导致n + 1个查询:

   (0.2ms)  SELECT AVG("ratings"."score") FROM "ratings" INNER JOIN "video_chats" ON "ratings"."video_chat_id" = "video_chats"."id" WHERE "video_chats"."user_id" = $1  [["user_id", 4]]
   (0.1ms)  SELECT AVG("ratings"."score") FROM "ratings" INNER JOIN "video_chats" ON "ratings"."video_chat_id" = "video_chats"."id" WHERE "video_chats"."user_id" = $1  [["user_id", 1]]
   (0.1ms)  SELECT AVG("ratings"."score") FROM "ratings" INNER JOIN "video_chats" ON "ratings"."video_chat_id" = "video_chats"."id" WHERE "video_chats"."user_id" = $1  [["user_id", 5]]
   (0.1ms)  SELECT AVG("ratings"."score") FROM "ratings" INNER JOIN "video_chats" ON "ratings"."video_chat_id" = "video_chats"."id" WHERE "video_chats"."user_id" = $1  [["user_id", 7]] …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

7
推荐指数
1
解决办法
188
查看次数

具有 has_one 关联的 Ruby on Rails 嵌套路由

我有两个模型:

预订:

class Reservation < ActiveRecord::Base
  has_one :car_emission
end
Run Code Online (Sandbox Code Playgroud)

汽车排放:

class CarEmission < ActiveRecord::Base
  belongs_to :reservation
end
Run Code Online (Sandbox Code Playgroud)

以及以下路线:

resources :reservations do 
  resources :car_emissions
end
Run Code Online (Sandbox Code Playgroud)

现在,当我想创建新的 car_emission 时,我必须像这样访问 url:

http://localhost:3000/reservations/1/car_emissions/new
Run Code Online (Sandbox Code Playgroud)

当我想编辑时,我必须访问:

http://localhost:3000/reservations/1/car_emissions/1/edit
Run Code Online (Sandbox Code Playgroud)

无论如何要更改我的 car_emission 编辑链接将如下所示的路线:

http://localhost:3000/reservations/1/car_emission
Run Code Online (Sandbox Code Playgroud)

ruby routes ruby-on-rails ruby-on-rails-4

6
推荐指数
1
解决办法
2947
查看次数