2017-01-10 15 views
1

私はレール上でルビーを学び始めています。私が持っている問題は、私がモデルを作成したいしながら、私はそこに着く理由がわからないということです これは私が レールがモデル帳レールでルビーのモデルを作成できません

を生成し、私のUbuntu 16の端末でこのエラーを取得しようとしたコマンドがある

/home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.0.1/lib/rails/app_loader.rb:40: warning: Insecure world writable dir /opt in PATH, mode 040777 
/home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.0.1/lib/rails/application/configuration.rb:148:in `rescue in database_configuration': YAML syntax error occurred while parsing /home/android/ruby Tutorial/library/config/database.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): found a tab character that violate intendation while scanning a plain scalar at line 17 column 10 (RuntimeError) 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.0.1/lib/rails/application/configuration.rb:131:in `database_configuration' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activerecord-5.0.1/lib/active_record/railtie.rb:122:in `block (2 levels) in <class:Railtie>' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:43:in `instance_eval' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:43:in `execute_hook' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:49:in `each' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activerecord-5.0.1/lib/active_record/base.rb:324:in `<module:ActiveRecord>' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activerecord-5.0.1/lib/active_record/base.rb:24:in `<top (required)>' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `block in require' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:345:in `active_record_configured?' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:263:in `disconnect_database' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:97:in `preload' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:143:in `serve' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:131:in `block in run' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:125:in `loop' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application.rb:125:in `run' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/spring-2.0.0/lib/spring/application/boot.rb:19:in `<top (required)>' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /home/android/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from -e:1:in `<main>' 

は、私はまた、この

rails script/generate model Book 

を試してみましたが、私はこのエラーを取得:

/home/android/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.0.1/lib/rails/app_loader.rb:40: warning: Insecure world writable dir /opt in PATH, mode 040777 
rails aborted! 
Don't know how to build task 'script/generate' (see --tasks) 
/home/android/ruby Tutorial/library/bin/rails:9:in `require' 
/home/android/ruby Tutorial/library/bin/rails:9:in `<top (required)>' 
/home/android/ruby Tutorial/library/bin/spring:14:in `<top (required)>' 
bin/rails:3:in `load' 
bin/rails:3:in `<main>' 
(See full trace by running task with --trace) 

//編集

私は自分のデータベースを確認したが、さらにyamlintのウェブサイトはまた、17行目にエラーがありますが、あなたはRailsの5の上にレール2のためのコマンドを使用しているエラー

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
# 
default: &default 
    adapter: mysql 
    pool: 5 
    timeout: 5000 

development: 
    adapter: mysql 
    database: library_development 
    username: root 
    password: root1234 
    host: localhost 

test: 
    adapter: mysql 
    database: library_test 
    username: root 
    password: root1234 
    host: localhost 

production: 
    adapter: mysql 
    database: library_production 
    username: root 
    password: root1234 
    host: localhost 

答えて

1

主な問題はdatabase.ymlファイルです。あなたはファイル内にtab spaceを持っていますが、YAMLファイルはそれが許可されていません。異なるエディタやツールで扱われるためです。そしてインデントは、YAMLの適切な解釈にとって最も重要な部分です。だから17行目でそれを修正する。そして永久的な解決のために、それに従ってテキストエディタの設定を維持してください。私はSublimeを使用し、各ページにはConvert Indentation to Spacesというオプションがあり、その設定では"translate_tabs_to_spaces": trueを設定することができます。それはRails 2バージョンに属し

rails script/generate model Book 

:あなたがしようとしていた2番目のコマンドについて

。代わりに、唯一の新しいコマンドを使用します。アプリケーションのデータベースfile.Itで

rails generate model Book 
0

はありません確認してください。

はRailsの5モデルを生成するには、使用する必要があります。

rails generate model Book 
+1

OPの主な問題はdatabase.yml' 'です。これは彼が試みた副次的な選択肢です。 – Deep

+0

両方の問題は有効です。一旦database.ymlが修正されると、私の答えで修正されたエラーまで実行されます。 –

0

チェックをあなたのconfig/database.ymlがを使用して有効である場合

0

チェックは、あなたが、あなたが同じディレクトリからdtabase.yaml.exempleからコピーすることができますファイルを持っていけない/config/database.yml.Ifであります。

0

あなたのスペースは、開発、テスト、プロダクションセクションで2つではなく3つのスペースがあるようです。

2スペース:

default: &default 
    adapter: mysql 
    pool: 5 
    timeout: 5000 

3スペース:

development: 
    adapter: mysql 
関連する問題