小编use*_*081的帖子

尝试在 Windows 服务器上安装 MSYS2 软件包时出现证书错误

我在 Windows Server 2016 上安装了 MSYS2-64bits 以支持一些 Linux 库,例如 OpenSSL,这是我在 Ruby on Rails 开发中需要的。MSYS2 已随 Ruby 2.7 部分安装,但由于证书错误消息而未完成。

我首先下载并安装msys2-x86_64-20210725.exe。花了很长时间,在出现几条有关更新信任数据库的消息后完成:

==> Generating pacman master key. This may take some time.

==> Updating trust database...

==> Appending keys from msys2.gpg...

==> Locally signing trusted keys in keyring...

  -> Locally signed 6 keys.
==> Importing owner trust values...

==> Disabling revoked keys in keyring...

  -> Disabled 1 keys.
==> Updating trust database...
Run Code Online (Sandbox Code Playgroud)

这个阶段停留了大约10分钟,最终宣告安装成功。

然后我尝试通过运行pacman -Syuu来更新现有软件。我按照要求重新启动了MSYS2,输入了语句,然后反复出现如下错误:

$ pacman -Syuu
:: Synchronizing package databases... …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails msys2

20
推荐指数
2
解决办法
2万
查看次数

LoadError:无法在Windows 2008 x64服​​务器上加载此类文件--bcrypt_ext

我将我的环境从Ruby 2.0.0升级到2.2.3.

我还升级(覆盖)DevKit,并重新运行ruby dk.rb install.

我删除了Gemfile.lock并运行bundle install以开始全新的环境.一切看起来都不错,但我收到错误:

E:\Projects\development\Stairs>rake db:migrate 
rake aborted!
LoadError: cannot load such file -- bcrypt_ext
E:/Projects/development/Stairs/config/application.rb:7:in `<top (required)>'
E:/Projects/development/Stairs/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- 2.2/bcrypt_ext
E:/Projects/development/Stairs/config/application.rb:7:in `<top (required)>'
E:/Projects/development/Stairs/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

我第一次遇到与Nokogiri相同的问题,我使用这个解决方案解决了:Nokogiri 使用Juloi Elixir的解决方案加载错误并从本地副本安装Nokogiri.

但我不想做这个foreach宝石!看起来ruby正在使用./或./2.2路径搜索gem,而gem则存储在./2.2.0路径中.这是可配置的吗?我该如何解决这个问题?

Note: Gemfile contains gem 'bcrypt', '~> 3.1.10'
Run Code Online (Sandbox Code Playgroud)

谢谢!

windows rubygems ruby-on-rails

15
推荐指数
3
解决办法
1万
查看次数

NoMethodError:ActiveSupport的未定义方法`halt_callback_chains_on_return_false =':模块

我一直在开发这个RoR 5.1应用程序,现在我需要添加一个新的迁移:

class AddActiveFlagToParameters < ActiveRecord::Migration[5.1]
  def change
    add_column :parameters, :is_active, :boolean, :default => true 
  end
end
Run Code Online (Sandbox Code Playgroud)

当我尝试运行迁移时,rails会引发错误:

NoMethodError:ActiveSupport的未定义方法`halt_callback_chains_on_return_false =':模块

阅读,我终于解决了这个问题,升级到Rails 5.2(gem activesupport 5.2.0)并在文件config/initializers/new_framework_defaults.rb中注释掉这一行.

但这听起来像是一个短期解决方案.

这是从哪里来的?我怎样才能安全地处理这个问题?

ruby-on-rails activesupport

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

RSpec未通过测试

实际上,这是一个配置问题.spec/spec_helper.rd指向'test'环境.我将其更改为'development'以使其引用config/environments/development.rb

最好的问候
弗雷德

我是RoR的新手,并遵循Michael Hartl的RoR 3.2教程.

在执行第一次测试时(第3.2.1章),RSpec从这一次开始返回一百个错误(并且所有错误都看起来相同或多或少):

/home/fred/.rvm/gems/ruby-1.9.3-p0@ODQ/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:45:in
`resolve_hash_connection': database configuration does not specify
adapter (ActiveRecord::AdapterNotSpecified)
Run Code Online (Sandbox Code Playgroud)

我的DEV数据库是PostgreSQL,看起来工作正常(迁移工作正常).

有人可以帮我理解什么是错的并解决它吗?

谢谢.

的Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.1'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'postgres-pr'
gem 'pg'

# gem for test scripts
group :development, :test do 
gem 'rspec-rails'
end

group :test do
  gem 'capybara', '1.1.2'
end

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails railstutorial.org

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

迈克尔哈特尔的书Rails 3.0和Rails 3.2之间的差异

我正在从Michael Hartl的书中学习Ruby on Rails.我非常喜欢这种写作,结构清晰.不过,我对Rails 3.0和Rails 3.2版本之间的第3.3章差异有疑问:

  • PagesController成为StaticPagesController
  • @Title 不再在控制器中初始化,而是在每个页面中
  • @Title变量是通过"提供"的功能初始化,并且通过"产量"函数,而不是简单地插入用于<%= @title %>

是出于培训原因,还是RoR开发的最新最佳实践?

ruby-on-rails railstutorial.org

5
推荐指数
1
解决办法
3831
查看次数

如何定义在 Ruby on Rails 5.2 中的 ActiveRecord 迁移中创建表时使用的顺序?

我需要将特定的 Postgres 序列分配给表的 ID 字段。在模型中,我尝试定义以下对 Posgres 没有影响的设置:

类 MyObject < ActiveRecord::Base

self.sequence_name = "global_seq"

通常,ActiveRecord 迁移中的表定义以

create_table "objects", id: :serial, force: :cascade do |t|
Run Code Online (Sandbox Code Playgroud)

它生成列默认值的 Postgres 定义为

default nextval('objects_id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)

如何在迁移中指定 nextval() 函数应该依赖于另一个序列?

postgresql activerecord ruby-on-rails rails-migrations rails-activerecord

4
推荐指数
1
解决办法
7374
查看次数

Ruby on Rails:在Rails 4.2上是否锁定了外部访问的IP端口3000?

我在计算机上的RoR应用程序上运行了两个版本:一个用于演示(稳定状态,RoR 4.0),另一个用于开发(RoR 4.2).可以使用http:// localhost:3000访问这两个版本.

但我注意到一个恼人的区别:演示版可以从网络上的另一台计算机访问.Dev版本不能.当Dev版本稳定并成为Demo时,这将是一个很大的麻烦.我的客户希望通过wlan在他自己的笔记本电脑上进行测试.

是否有新实施的"防火墙"功能?这是我的宝石之一吗?

如果有人能向我解释这种改变的行为,我会很高兴的!

对于这两种环境,服务器都是Webrick WEBrick 1.3.1.这是我的宝石文件:

开发(无法从另一台计算机访问)

source 'https://rubygems.org'
ruby '2.2.0'

gem 'rails', '~> 4.2.0'
gem 'bootstrap-sass', '~> 3.3.3'
gem 'sass-rails',   '~> 5.0.1'
gem 'coffee-rails', '~> 4.1.0'
gem 'uglifier', '~> 2.7'
gem 'bcrypt', '~> 3.1.10'
gem 'jquery-rails', '~> 4.0.3'
gem 'turbolinks', '2.5.3'
gem 'jbuilder', '~> 2.2.6'
gem 'bootstrap-datepicker-rails', '~> 1.3.1'
gem 'will_paginate', '~> 3.0.7'
gem 'bootstrap-will_paginate', '~> 0.0.10'
gem 'selenium-webdriver', '~> 2.44.0'
gem 'sequenced', '~> 2.0.0'
gem 'annotate', '~> 2.6.5'
gem 'rspec-rails', '~> 3.2.0' …
Run Code Online (Sandbox Code Playgroud)

ip ruby-on-rails webrick

3
推荐指数
2
解决办法
3267
查看次数

如何使用Ruby 2.5.3从数组中删除字符串?

我在Ruby on Rails 5.2上开发.为了管理翻译,我希望允许用户选择与他当前语言不同的语言.应用程序的已配置语言列表是

 all_languages = I18n.config.available_locales
Run Code Online (Sandbox Code Playgroud)

all_languages是一个数组.puts all_languages收益:

en fr de it
Run Code Online (Sandbox Code Playgroud)

用户语言在users表中定义.方法返回当前用户的语言

user_language = current_user.language
Run Code Online (Sandbox Code Playgroud)

user_language是一个String.puts user_language收益:

en
Run Code Online (Sandbox Code Playgroud)

我尝试将delete(obj)方法应用于数组,但这不会改变数组:

all_languages.delete(user_language)
Run Code Online (Sandbox Code Playgroud)

我尝试只处理数组,但它不会改变语言数组:

remove_language = Array.new
remove_language << user_language
Run Code Online (Sandbox Code Playgroud)

puts remove_language 收益:

en
Run Code Online (Sandbox Code Playgroud)

puts all_languages - remove_language 收益:

en fr de it
Run Code Online (Sandbox Code Playgroud)

应删除en语言的地方.我不明白为什么它仍然在列表中!

ruby arrays ruby-on-rails

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

Rails:如何检查是否提供了content_for?

在我的RoR 4.2应用程序中,所有页面都提供:标题,用于HTML标头<TITLE>标记.动态页面还提供:page_heading内容,它显示在我的应用程序页眉布局中.

为了保持一致的外观,我希望标题也显示在静态页面的应用程序页眉布局中,即:不提供page_heading时.

这是展示视图的开始代码:

<% provide(:title, 'Managing business rules') %>
<% content_for :page_heading do %>
<h1>Business Rule: <%= @business_rule.name %></h1>
<% end %>
----
Run Code Online (Sandbox Code Playgroud)

以下是_header.html.erb应用程序布局中嵌入的代码:

<h1> <%= yield(:page_heading.empty? ? :title : :page_heading) %> </h1>
Run Code Online (Sandbox Code Playgroud)

因此,对于静态页面:标题显示在IceWeasel标题栏中,并且在应用程序标题中也是如此,这是正确的.

但是,对于动态页面:标题显示在IceWeasel标题栏中,也显示在应用程序标题中,其中:page_heading是预期的.

符号上的条件:page_heading.empty?不起作用.

如何正确指定此条件并将预期符号提供给yield函数?

谢谢.

ruby ruby-on-rails

0
推荐指数
1
解决办法
749
查看次数

如何在使用Rails 5.2的红宝石模型中的过滤器之前跳过?

我的应用程序管理文档的层次结构。每个文档都有一个层次结构索引,该索引仅在创建时计算。文件document.rb开始于

class BusinessRule < ActiveRecord::Base
### before filter
  before_create :set_hierarchy
Run Code Online (Sandbox Code Playgroud)

并根据父级和兄弟级计算层次结构,以便在父级 self.hierarchy = last_one.next范围内进行评估。

现在,我添加了版本管理功能。由于在控制器中添加了new_version方法,因此使用该@document.dup方法可以复制文档,然后将其保存:层次结构应该保持不变,并且仅需要增加版本号。

精细。但是before_create过滤器是由模型中的save操作触发的,并且层次结构增加了,这不符合要求。

在控制器中执行new_version操作时,如何防止模型中的before过滤器触发?

ruby-on-rails before-filter

0
推荐指数
1
解决办法
324
查看次数