0

Ruby on Rails は初めてなので、これはばかげた質問かもしれません。私はアプリを持っており、宝石を問題なくバンドルできます。そこで、ほとんど静的なページをいくつか追加したいと思います。rails generate controller MostlyStatic page1 page2 を使用して、それらのコントローラーを生成しようとしました。これにより、mostly_static という名前のコントローラーと、page1 および page2 という名前のページが生成されます。代わりに、エラーをスローします。どうやら、生成コマンドは、まだ作成していないデータベースに接続しようとしています。これらのページにはデータベース テーブルであるべきものは何もないので、なぜこの時点でデータベースがプロセスに組み込まれているのか、少し混乱しています。私はさまざまなチュートリアルを調べましたが、静的ページのコントローラーを生成するためにデータベースが必要であるとは言いません。そう... 私は何が欠けていますか?静的ページを生成するためだけに、最初にデータベースを作成する必要がありますか? もしそうなら、その後、その世代によって作成されたテーブルを削除すると、アプリの機能が損なわれますか? 私は本当に、静的なページがぶらぶらしている無駄なテーブルの束を望んでいません。データベースなしでこれらのページとコントローラーを生成する方法はありますか?

4

2 に答える 2

3

コントローラーを生成するための規則に従っていません。コントローラを生成しても、データベース テーブルは作成されません。rails generate modelrails generate resourceまたはを呼び出して、それを行う必要がありますrails generate scaffold

したがって、いくつかの静的ページ用のコントローラーが必要です。これを試して

rails generate controller static_pages home help contact

ジェネレーターは複数形でスネーク ケース (static_pages) であることに注意してください。これにより、静的コントローラーと、、、およびページが生成home.html.erbhelp.html.erbcontact.html.erbます

コントローラーでこれらのアクションを使用してページにアクセスできるようになりました

def home
end

def help
end

def contact
end

また、ルートが設定されていることを確認する必要があります

# routes.rb

match '/home',    to: 'static_pages#home'
match '/help',    to: 'static_pages#help'
match '/contact',    to: 'static_pages#contact'

データベースは設定されておらず、ページにアクセスできます。あなたがする必要があるのはそれだけです。複数のコントローラーと単一のモデルとレールのように、規則に従ってください。詳細は処理されます。これで始められることを願っています

アップデート

ここのコメントへの応答として、コントローラー生成の標準出力を示します。私の例ではerbの代わりにhamlを使用しましたが、出力にはデータベースに関連するものは何もありません.

rails g controller static_pages home help contact
  create  app/controllers/static_pages_controller.rb
   route  get "static_pages/contact"
   route  get "static_pages/help"
   route  get "static_pages/home"
  invoke  haml
  create    app/views/static_pages
  create    app/views/static_pages/home.html.haml
  create    app/views/static_pages/help.html.haml
  create    app/views/static_pages/contact.html.haml
  invoke  rspec
  create    spec/controllers/static_pages_controller_spec.rb
  create    spec/views/static_pages
  create    spec/views/static_pages/home.html.haml_spec.rb
  create    spec/views/static_pages/help.html.haml_spec.rb
  create    spec/views/static_pages/contact.html.haml_spec.rb
  invoke  helper
  create    app/helpers/static_pages_helper.rb
  invoke    rspec
  create      spec/helpers/static_pages_helper_spec.rb
  invoke  assets
  invoke    coffee
  create      app/assets/javascripts/static_pages.js.coffee
  invoke    scss
  create      app/assets/stylesheets/static_pages.css.scss
于 2013-06-12T00:17:46.663 に答える
0

この質問に出くわした人にとって、正しい答えは、データベースが存在する必要はないということですが、構成ファイルに存在するかのように適切に構成する必要があります。コントローラーを生成しても、実際にはデータベースは作成されません。

于 2013-07-29T19:41:40.187 に答える