小编Seb*_*lma的帖子

Ruby - 合并两个数组并删除具有重复的值

我有两个数组

a = [1, 2, 3, 4, 5]

b = [2, 4, 6]
Run Code Online (Sandbox Code Playgroud)

我想合并两个数组,然后删除与其他数组相同的值.结果应该是:

c = [1, 3, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我试过减去两个数组,结果是[1,3,5].我还想从第二个数组中获取第一个数组中没有重复的值.

ruby arrays ruby-on-rails

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

Rails:添加迁移以添加数组(默认为空)

我正在尝试将一个名为share的列添加到我的一个资源中.这个想法是用户可以上传文档并与其他(特定)用户共享,并且该数组包含用户想要与之共享的电子邮件.

我尝试使用代码添加迁移

class AddShareToDocuments < ActiveRecord::Migration
  def change
    add_column :documents, :share, :array, :default => []
  end
end
Run Code Online (Sandbox Code Playgroud)

但是当我在命令提示符下打开rails console时,它表示share:nil和user.document.share.class是NilClass.

通过键入在rails控制台沙箱中创建一个新数组

newarray = []
Run Code Online (Sandbox Code Playgroud)

说newarray.class是Array.

谁能发现我做错了什么?

postgresql ruby-on-rails

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

如何删除 Permission denied @ rb_sysopen - Gem 安装错误?

我正在尝试在 Ruby on Rails 中安装创建一个新应用程序,但我无法通过此错误:

$ gem install pg
Run Code Online (Sandbox Code Playgroud)

错误:执行 gem 时 ... (Errno::EACCES) 权限被拒绝 @ rb_sysopen - /Users/stormyramsey/.rbenv/versions/2.3.2/lib/ruby/gems/2.3.0/gems/pg-0.21.0 /.gemtest

ruby installation rubygems ruby-on-rails

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

ActionController :: UrlGenerationError,没有路由匹配

我已经阅读了我能找到的每个类似的问题,但仍然无法弄清楚我的问题.

# routes.rb
Rails.application.routes.draw do
  resources :lists, only: [:index, :show, :create, :update, :destroy] do
    resources :items, except: [:new]
  end
end
Run Code Online (Sandbox Code Playgroud)
# items_controller.rb (excerpt)
class ItemsController < ApplicationController
  ...

  def create
    @list = List.find(params[:list_id])
    ...
  end
  ...
end
Run Code Online (Sandbox Code Playgroud)
# items_controller_spec.rb (excerpt)
RSpec.describe ItemsController, type: :controller do
   ...

  let!(:list) { List.create(title: "New List title") }

  let(:valid_item_attributes) {
    { title: "Some Item Title", complete: false, list_id: list.id }
  }

  let!(:item) { list.items.create(valid_item_attributes) }
  describe "POST #create" do
    context "with valid params" do
      it …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rspec-rails

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

如何创建验证JSON响应的rspec测试?

我有一个带有方法的组控制器 def inbox.

如果用户是组成员,则收件箱将返回JSON对象.

如果用户不是会员,则可以通过CanCan权限重定向收件箱.

如何编写rspec来测试这两个用例?

目前规格:

require 'spec_helper'

describe GroupsController do
  include Devise::TestHelpers

  before (:each) do
    @user1 = Factory.create(:user)
    @user1.confirm!
    sign_in @user1
    @group = Factory(:group)
    @permission_user_1 = Factory.create(:permission, :user => @user1, :creator_id => @user1.id, :group => @group)
  end

  describe "GET inbox" do
    it "should be successful" do
      get inbox_group_path(@group.id), :format => :json
      response.should be_success
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

路线:

inbox_group GET /groups/:id/inbox(.:format) {:controller=>"groups", :action=>"inbox"}
Run Code Online (Sandbox Code Playgroud)

路线文件:

resources :groups do
  member do
    get 'vcard', 'inbox'
  end
  ....
end
Run Code Online (Sandbox Code Playgroud)

testing json rspec cancan ruby-on-rails-3

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

rspec测试的JSON数据

我正在创建一个接受JSON数据的API,我想为它提供测试数据.

是否有类似JSON数据的工厂?我想在对象和JSON中提供相同的数据,以便我可以检查导入是否按预期工作.

JSON有严格定义的结构,所以我不能打电话FactoryGirl(:record).to_json.

ruby json factory rspec ruby-on-rails

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

针对 FrozenStringLiteralComment 的 Rubocop 自动更正不起作用

我有一个 Rails 6 项目,正在尝试使用 RuboCop 的auto-correct选项来修复许多Style/FrozenStringLiteralComment错误(主要是在生成的文件中)。

无论我bundle exec rubocop --auto-correct --only Style/FrozenStringLiteralComment从项目根目录运行多少次,Rubocop 都只会报告错误,而不会自动更正它们:

app/models/product.rb:1:1: C: Style/FrozenStringLiteralComment: Missing frozen string literal comment.

通过使用该--show-cops选项运行,我可以看到这个警察“支持 --auto-correct”,所以我不确定出了什么问题。

我的.rubocop.yml文件只有一个配置设置:require: rubocop-rails.

我也运行过bundle exec rubocop -a,它更正了配置和类似文件中的其他错误(主要是单引号)。

知道为什么在这种情况下自动更正不起作用吗?谢谢。

ruby ruby-on-rails rubocop

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

Ruby中的循环分配

我有EnquiryConsellor模特.我想以循环方式向辅导员分配咨询.如果有3个consellors和5个查询,那么作业应该是:

询问1 => C1,询问2 => C2,询问3 => C3,询问4 => C1,询问5 => C2

我可以通过查询数据库并通过缓存进行优化来实现这一目标,但寻找更好的解决方案.

ruby ruby-on-rails-3

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

rust sqlx 出现错误“等待打开连接时池超时”

我使用脚本循环请求时sqlx报错

“等待打开连接时池超时”

这个池在下面

Pool { size: 5, num_idle: 5, is_closed: false, options: PoolOptions { max_connections: 5, min_connections: 0, connect_timeout: 30s, max_lifetime: Some(1800s), idle_timeout: Some(600s), test_before_acquire: true } }
Run Code Online (Sandbox Code Playgroud)

这是我的代码

Rust 主程序.rs

#[derive(Serialize)]
struct JsonResp {
    id: i32
}

#[derive(Clone)]
struct AppState {
    pub pool: MySqlPool
}

#[async_std::main]
async fn main() -> tide::Result<()> {

    let pool = MySqlPoolOptions::new()
        .max_connections(5)
        .connect("mysql://root:123456@localhost:3306/blog").await?;

    println!("{:?}", pool);

    let app_state = AppState { pool: pool };

    let mut app = tide::with_state(app_state);
    app.at("/test").get(test);
    app.listen("127.0.0.1:8080").await?;
    Ok(())
}


async fn …
Run Code Online (Sandbox Code Playgroud)

rust rust-sqlx

10
推荐指数
0
解决办法
2942
查看次数

允许在rails中使用强参数的数组数组

我已经到处搜索但是有没有人知道是否可以在rails中使用强参数来允许和阵列数组?我的代码看起来像这样:

params.require(:resource).permit(:foo, :bar => [[:baz, :bend]])
Run Code Online (Sandbox Code Playgroud)

这给了我:

ArgumentError(错误的参数数量(0表示1..2))

我也尝试过:

params.require(:resource).permit(:foo, :bar => [[]])
params.require(:resource).permit(:foo, :bar => [][])
params.require(:resource).permit(:foo, :bar => [])
Run Code Online (Sandbox Code Playgroud)

但这些都给我无效的参数错误或不处理参数.

在此先感谢您的帮助

arrays ruby-on-rails strong-parameters

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