ruby rails:索引中的ArgumentError:键必须为32个字符

时间:2018-09-01 10:31:41

标签: ruby-on-rails ruby ruby-on-rails-4

我只是Rails的新手。
我正在关注https://guides.rubyonrails.org/getting_started.html上的教程,但遇到了以下问题: 我创建了一个正在运行的控制器     rails generate controller Welcome index,然后将get 'welcome/index'root 'welcome#index'添加到config/routes.rb。 打开localhost:3000(ruby服务器的默认设置)给我这个error page

我在StackOverflow和GitHub上进行了一些研究,发现可以通过在gemfile中将github上的rails 5-0-stable版本链接起来解决此问题,但是捆绑安装找不到git文件。我也尝试更改config / routes.rb,但这似乎不是问题。 我读了一些有关更改源文件中的呼叫的答案,但我不明白他们在谈论哪个文件(https://github.com/rails/rails/issues/25448

红宝石和Rails版本:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
Rails 4.2.6

PS:我认为这没有任何关系,但是启动服务器时遇到了一些问题,因为捆绑安装提供了error: couldn't build native extensions,我解决了通过apt安装ruby-dev以及通过单独安装一些gems的问题。 gem install

编辑:

命令从终端运行:

$ rails new blog
$ cd blog
$ rails server

已编辑的文件:

#config/routes.rb
Rails.application.routes.draw do
  get 'welcome/index'
  root 'welcome#index'
  get 'layout/application'
end

感谢您的帮助!

尝试链接github ruby​​ 5.2之后:

$ bundle install
Fetching https://github.com/rails/rails.git
sh: 1: git: not found
Retrying `git clone 'https://github.com/rails/rails.git' "~/.bundle/cache/git/rails-fcf0202857b07db1a0f6220dae5ca99319ca0f32" --bare --no-hardlinks --quiet` due to error (2/4): Bundler::Source::Git::GitCommandError Git error: command `git clone 'https://github.com/rails/rails.git' "~/.bundle/cache/git/rails-fcf0202857b07db1a0f6220dae5ca99319ca0f32" --bare --no-hardlinks --quiet` in directory ~/script/ruby/blog has failed.sh: 1: git: not found
Git error: command `git clone 'https://github.com/rails/rails.git'
"~/.bundle/cache/git/rails-fcf0202857b07db1a0f6220dae5ca99319ca0f32" --bare
--no-hardlinks --quiet` in directory ~/script/ruby/blog has failed.

1 个答案:

答案 0 :(得分:0)

似乎您刚刚启动了一个新的Rails应用程序?如果是这样,您应该直接使用Rails 5.2,它在撰写本文时似乎是最新的稳定版本。

rails s生成的Gemfile的顶部,我有以下内容

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.1'

# Rails
gem 'rails', github: "rails/rails", branch: "5-2-stable"

尝试以此更改您的Gemfile,然后重新运行bundle

此外,为了管理您的红宝石版本,我强烈建议您切换到rbenv,而不是让系统管理Ruby版本