LoginSignup
1
0

More than 5 years have passed since last update.

Error対策【Ruby on Rails】

Posted at

マイグレートできていない場合

rake db:migrate:statusコマンドをターミナルで入力することで何がマイグレートできていないかがupとdawnでわかる。

$rake db:migrate:status

database: pictweet2_development
Status   Migration ID    Migration Name

   up     20170328065038  Create tweets
   up     20170328134331  Devise create users
   up     20170329021023  Add nikname to users
   up     20170329022213  Add user id to tweets
   up     20170329030957  Remove name from tweets
  down    20170329045124  Create coments

Create commentがdawnなのでファイルを調べ修正し、rails g model commentをしてからrake db:migrateする。

今回はcommentの名前自体をミスしていたため一度削除してから再登録することとした。

ファイルを消す

rails d "ファイル名" "データ名"
例:rails d model comment

ファイル場所の検索①

ページ上で「tweet」がある場所を探したい場合、『command+F』で候補を出せる。

ファイル場所の検索②

『command+shift+F』でページ上でなく、ファイル内全検索できるので、そこからError文の場所を探せる。
また、「ログアウト」の工程が怪しいと思えば日本語で「ログアウト」と検索するのも一つの手。

Vertion Error

バージョンが古いというErrorが出た時は、bundle updateしてからbundle installを行えば通常大丈夫だが、gemやruby自体のバージョンに限界がある場合があるため、正規のgemファイルの記載をコピペした後にbundle installで対策を行う。

HTMLメソッドから追う

文構成としてrails上ではHTMLメソッドは何が使われるべきかあらかじめ定義されている。
ターミナルにて『rake routs』を入力し「_path」に付随するものを洗い出す。例えば、「destroy_user_session」ならば後ろに「_path」が付いたものがSublime Text上に存在する。htmlメソッドは『rake routs』時に表示される「delite」が後ろにないといけない。sublime上何も記載がなければ「get」になるというのがrailsのルールでもある。

ルーティング

006.png

routes.rb
Rails.application.routes.draw do
get'tweets' => 'tweets #index'
     パス      コントローラ名  アクション名
end
tweets.controller
class Tweetscontroller < Applicationcontroller
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0