Rails NoMethodError 怪現象

残念ながら訂正した後なので、エラー画面が無いのですが。

この画像の選択した部分でエラーが出て行た。エラー内容は
undefined method ‘update’ for nil:NilClass
になっていた。このエラーの意味は変数が空だという意味。なので色々と調べてもどう見てもスペル間違いや、インスタンス変数など間違えやすい所も正しい。なので@blogconfig.update の部分を削除し、再度同じ文字を打ち込んで保存したらエラーは出なかった!!
私の拙い能力では原因がからないが、打ち直した部分に表示されない文字が含まれていたのかなー?

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails 入力枠が複数行表示にならない

これはエラーが出ないが本来なら左側の表示でないとならないが、右のように1行分しか表示されない。

app/views/blogposts 開くと
fieldをarea に直して保存

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails ActionController::UrlGenerationError

controllerが editで URLを作れないと言っている。上の画像をよく見ると複数形出なければ成らない所が単数形になっている。なので app/views/blogconfigs/edit.html.erb を開いて訂正。

Railsでは複数形、単数形をはっきり区別して覚えないとこうなる。

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails NoMethodError in Controller#add

undefined method ‘content’ for と表示が出ている、ジャンルのデーターベースには content なんか無いはず。11行目でエラーが出ているという事は多分 blioggenre_paramsでエラーが出ていると思う。と言う事はデーターベース関係だと見当を付けてその関係をチェック。db/migrateのジャンル関係の CreateBloggenres を調べるが正しい。次はapp/models/bloggenre.rb

ここに、データーベースには無い content が必須になっている。なのでこれを削除する。何でこうなったかと言うとblogpost.rb をコピーして作成した時にを削除するのを忘れたポカミス。

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails Routing Error


bloggenres/add へのルートが無いと言っている。よく見るとスペルが違う。なので
config/routes.rbを開く

さらに違うRouting Error

ルートが無いといっているが、本当はundefined method `kayout’ for BlogsController:Class Did you mean? layout _layout が大事。つまりkayout が layout の間違いではないかと言っている。仰る通りです。app/controllers/bllogs_controller を見ると

黄色で示したようにタイプミス。 layout に訂正してOK。

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails NoMethodError


これは簡単、addのメソッドが無いと言っているので、app/contrllers/bloggenres_cotorollers.rb を見る

@bloggenre の b が抜けている

もう一つ同じ様なエラー

エラーが出ている所をよく見ると、@blogopost. になっている余分なoがある。これは単にスペルミス
@blogpost.errors.any? 修正した。

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails AssetNotPrecompiled

blogposts.html.erbでエラーになっている。blogpostsがコンパイルしていないと言っている。実際はconfig/initializers/assets.rb でエラーが出ている。

そのファイルが上の画像。赤線の所は複数形で書かないといけない。
initializers の中なので、再コンパイルが必要。WEBサーバーを止め、
rails s でサーバーを再起動すると再コンパイルしてくれる。

カテゴリー: Rails 初心者の犯したエラー | コメントする

Rails Sass::SyntaxError

エラー画面
エラーが blogconfigs.html.erb の7行目でエラーが出て}無いと言っている。
これは実際には app/assets/stylesheetsに作った gray.sccs でエラーが出ている。

これがそのファイル。本来は }であるべき処が ] になっているので、}を探して無いのでエラーになった。

assetsに作ってあるので、プリコンパイルが必要。なので、ctrl+c でWEBサーバーを止めrails s で再スタートする。

 

カテゴリー: Rails 初心者の犯したエラー | コメントする

はじめに Rails ERROR

Rails初心者の私が遭遇したエラーを列記していきます。
Railsは簡単にプログラムが作れて大変素晴らしいのですが、作者も言っているように「設定よりも規約」ですので色々な規約が存在します。裏を返せば少しでも規約に沿わなければ直ぐにエラーになります。たった一つの記号を忘れても直ぐにエラーになり、また、その際Railsはエラーが何処で起こったか表示をしてくれるのですが、よく、本当にエラーが起こった場所とは違う所を表示したりします。なので、初心者の私が遭遇したエラーを列記することにより、少しでも参考になればと思って、このカテゴリーを作りました。

カテゴリー: Rails 初心者の犯したエラー | コメントする

mariadb(mysql)でユーザー名に記号が入っている時

ユーザーを追加し、権限を与える為に
grant all privileges on DB名.* to ユーザー名@localhost identified by ‘パスワード’;
と入力したら、
correponds to your MariaDB server version for the right syntax to use near ユーザー名の記号がある部分から後
が表示された。(バージョンはver 15.1 Distrib 10.5.10-MariaDB) このバージョンではユーザー名に記号が入っている場合はそのままでは駄目みたい。なので
grant all privileges on DB名.* to “ユーザー名”@localhost identified by ‘パスワード’;
とユーザー名の部分のみダブルクォーテーションで括るとエラーが出ないで設定できた。

カテゴリー: Linux運用時のメモ | コメントする