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運用時のメモ | コメントする

Require env でエラーが出る

かなり前に作ったWEBサイト(XOOPSの古いバージョンを使用)が古いApache, PHP, Mysql 等を使っているので、新しいWEBに移植している時(PHPはfcgiを使用し、バージョン5.6.40と7.4.19を同居させている)Require env ref_okでエラーが出る。この設定は画像をuploadしているディレクトリーにある、画像ファイルを直打ちで表示させないために設定をしている
<Directory “画像のあるdirectory”>
    SetEnvIf Referer “^https://www\.kinryokai\.net” ref_ok
    order deny,allow
    deny from all
    Require env ref_ok   変更前は allow from env=ref_ok
<Directory>
と設定をした。
この時のバージョンは
OS:   CentOS 7.9.2009
Apache:   2.4.6
PHP:   5.6.40
これでエラーが出る。Allow from から Requireに変更したのはapacheのバージョンが2.4からRequireになったとWEBに書いてあった。
もしやと思い Require env ref_okallow from env=ref_ok に書き換えて、httpdをリロードすると直った!!
どうも、アパッチが2.4でもPHPとの組み合わせでこのようになるのかな!!

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