&tag(Rails3); *目次 [#c29a9fdb] #contents *参考情報 [#vce0c679] -[[Rails]] -[[RSpec]] -[[./基本]] -[[./データベース]] -[[./マイグレーション]] -[[./ルーティング]] -[[kaminari]] *素朴な疑問 [#qe7742d0] **gitは必須なのか? [#y92b48ed] -プラグインをインストールするのに便利なだけで必須ではない。自分のソースは何で管理しようが自由。 *Tips [#fa4ab927] **コンソールを使う [#v18c2ae8] -コマンドラインで以下を実行 rails console **development/productionでデータのコピー [#b4c5b210] ***cloneを使う [#ed6d86ef] -以下のrakeコマンドでproduction→developmentができるらしい。[[Railsでproduction環境からテスト用DBを再構築する方法 - Hello, world! - s21g:http://blog.s21g.com/articles/579]]より。 % rake db:test:clone RAILS_ENV=production ***dump/loadを使う [#hd06d843] -[[13さいの備忘録 : SQLite3→MySQLへデータ移行:http://blog.livedoor.jp/nizoraul/archives/3409614.html]]にかかれてある方法。 -Gemfileに以下を追加し bundle install。 gem 'yaml_db' -production環境のデータをdump。db/dump.yamlが作成される。 rake db:dump RAILS_ENV=production -development環境にデータをload。 rake db:load **Twitter Bootstrapを使う [#zaf8ee2a] -[[TwitterBootstrapWithRails]] **lib以下に置いた自作ライブラリをautoloadする [#gd8ff015] -application.rbに以下を追加。 #pre{{ config.autoload_paths += %W(#{config.root}/lib) # 追加 config.autoload_paths += Dir["#{config.root}/lib/**/"] # 追加 }} *トラブルシューティング [#idddb4bf] **rake testが実行できない [#jf748935] -次のエラーが表示される。 MiniTest v1.6.0 is out of date. (RuntimeError) -[[2011-10-20 - It’ll be:http://d.hatena.ne.jp/ks0608/20111020]]に書いてある方法で対処できる。 ***MiniTestを明示する方法 [#d03e60ec] -Railsアプリのrootに存在するGemfileの末尾を次のように変更する。 #pre{{ group :test do # Pretty printed test output gem 'turn', :require => false gem 'minitest' end }} **bundle関連 [#n07b3c39] ***bundle install [#p42eaac9] -pathを指定したほうがいいらしい。 bundle install --path vendor/bundle ***rake aborted! cannot load such file -- bundler/setup [#m83dcb00] -[[メモーる: rake aborted! cannot load such file -- bundler/setup:http://memoyasu.blogspot.com/2011/11/rake-aborted-cannot-load-such-file.html]] ***Gemfile/Gemfile.lockを作り直したい [#d09a5334] -rubyのバージョンが上がるなどして、開発中RailsアプリケーションのGemfile/Gemfile.lockの中にある各種パッケージのバージョンを一括更新する方法が知りたいが不明。 -rails newしてそのGemfileを参考にして書き直すとか。 ***mysql2関連のエラー [#pc73b593] -Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter`というエラー。 -Gemfileを編集し、"mysql2"→"ruby-mysql2"に変更するも修正できず。 -vendorフォルダをいったん削除し、Gemfileを以下のように修正し、bundle installしなおした。 #pre{{ gem 'mysql2', '~> 0.3.11' }} **モデル関連 [#v95d9404] ***Uninitialized Constantsと表示されモデルが参照できない。 [#r0e060e5] -モデルのファイル名がおかしいのかも。 -ItemPrice→item_price.rbの関連がないと読み込まれないのかも。実行時に探している(?) **データベース関連 [#ucc30064] *** Cannotestablishconnectionがどうのこうの [#f16786ea] -Gemfileに"mysql2"が含まれていなかったのが原因か。 *** モデルのattributesが食い違っている [#tfa1774c] -Rspecのテスト環境のときは〜_testデータベースが使われる。テーブル定義があっているかどうか確認。 **プロダクション環境でエラー [#vc7d1c17] -production環境でエラーになる場合、config.assets.compile = trueとか、config.serve_static_assets = falseをコメントアウトするとか。 **ActionController::RoutingError (No route matches [GET] "/favicon.ico"): [#ice29956] -favicon.icoが適切な場所にないのが原因。[[ActionController::RoutingError (No route matches [GET] "/favicon.ico") in Rails - Stack Overflow:http://stackoverflow.com/questions/15687506/actioncontrollerroutingerror-no-route-matches-get-favicon-ico-in-rails]] -以下のようにapplication.html.erbでリンクしている場合 <%= favicon_link_tag 'favicon.ico', :rel => 'shortcut icon' %> -public/assets/images/favicon.icoがないとエラーになる。public_html/favicon.icoをコピーすれば良い。