在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) 我将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.
在我的项目中,我在命名空间管理员中有控制器,我正在使用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)
有任何想法吗?
我有这样的规格:
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)
我怎样才能解决这个问题?
在我的应用中,我创建了最近的帖子功能.
@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应用程序中,我使用了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中做到这一点?
我将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)
我该如何解决这个问题?
在我的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) 我有以下脚本:
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) 我有两个模型:
预订:
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 ×6
postgresql ×2
sql ×2
apt ×1
capybara ×1
linux ×1
rails-i18n ×1
routes ×1
rspec ×1
ubuntu ×1