2020-12-01から1ヶ月間の記事一覧

バリデーションエラーメッセージをJavaScript使って表示させる

いつもはフォームのエラーメッセージは下記のようにJavaScriptを使わずに行っていた。 messages_controller.rb class MessagesController < ApplicationController 〜略〜 def create @message = Message.new(message_params) if @message.save redirect_to …

テンプレートエンジン

ERB Rubyに標準で使えるテンプレートエンジン。 ERBの見た目はHTMLとほぼ同じのため、既存のHTMLもそのまま使える。 <html><head> <title>Title</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <script type="text/javascript" src="https://js.pay.jp/v1/"></script> <%= stylesheet_link_tag 'application', media: 'all'%> <%= javascript_pack_t…</head></html>

タイムゾーンに関する話

1つ目はGitHubのOmniAuth の認証が進まなくて詰まった話 結論から言うと時間がずれていました。 PCのローカル環境の時間がずれていることで発生したようだ。 見てほしいのはこちら。 https://gyazo.com/fbcdfda4e4f76793242b60d8c604c9f2 0.2秒…これだけ…

pythonで模写してみた

Pythonならyoutubeのアーカイブのチャット欄からコメントを取得できると思い、手を付けてみた。(実際はLIVEチャットの取得のみでアーカイブからではなかった) どこをどう持っていけばよいのか参考にした動画を見ながら、Youtube DATA API のリファレンスで…

存在するかを確認できるexists?、present?、presenceメソッド

exists?メソッド レコードの存在チェックだけを行う場合に使用する。 例えば モデル名.exists? でデータベースのテーブルの中にデータが存在するかを確認し、真偽をtrue,false で返してくれる。 また、 モデル名.exists?(条件) にすると指定した条件でマッチ…

コンソールやpry-railsの有用性

エラーが起きたときは"binding.pry"もしくは"rails c"で調べるとわかりやすい current_userのidやparamsのitem_id、Itemモデルの値段を調べていた時のコンソールやbinding.pryの一部のコピー rails c 1] pry(main)> p current_user.idNameError: undefined l…

paramsについて(formオブジェクトのハッシュの外にあるパラメーターを使う)

[1] pry(#<PurchasesController>)> params => <ActionController::Parameters {"authenticity_token"=>"NqmRcmfoe9upA8OR3srT7HzO4o5RCGi/dyCS2jPuhUNiHNhiEF8Z/868Byp8VXlvMF4aScovG8aZmEMPqmgnoQ==", "user_info"=>{"postal_code"=>"999-9999", "prefecture_id"=>"3", "city"=>"まち", "address_line"=>"", "building"=>"",…</actioncontroller::parameters></purchasescontroller>

ActiveRecord::NotNullViolationt

ActiveRecord::NotNullViolationt ...postal_code doesn’t have a default value... 今度はこんなエラーが。 つまり"postal_code"がnull(空)で登録されようとしてることでのエラー。 原因は 1、カラム名の間違い 2、ストロングパラメーターに入ってない 3…

ActiveModel::ForbiddenAttributesError

ActiveModel::ForbiddenAttributesError in PurchasesController#create ActiveModel::ForbiddenAttributesError Extracted source (around line #9): 7 8 9 10 11 12 def create @item = Item.find(params[:item_id]) Purchase.create(purchase_params) Use…

メソッド内の処理をまとめる

下記のようなRailsの記述。 @tweet = Tweet.find(params[:id]) が何度も出ていてなんとも Dry じゃない。 before_actionを使ってまとめられるのでまとめていく。 class TweetController < ApplicationController def show @tweet = Tweet.find(params[:id]) …

編集画面で情報を変更すると全てのレコードが変更される謎現象が起きた

写真を投稿できるアプリケーションについて学んでいるとき。 その投稿した写真の詳細を編集する詳細ページを実装していたのだが、なぜか一つの写真のデータを変更するとそのテーブルの全てのカラムが編集したデータと同じになってしまった。 User_id から写…

SyntaxError Invalid char `\x08' in expression

SyntaxError in ItemsController#index Invalid char `\x08' in expression { id: 7, mahjong: 'チートイツ' }, { id: 8, mahjong: '一気通貫' },{ id: 9, mahjong: 'トイトイ' },{ id: 10, mahjong: '小三元' } 今回はこちらのエラー。 Invalid char `\x08'…

正規表現によるパスワードのバリデーションについて

正規表現、難しい。 現在、railsのユーザー登録時のバリデーションで苦戦中。 rails は devise があるのだけれどそのままではパスワードの安全性はないに等しいのでせめてもう少しバリデーションを付け足したい。 ということでこちら。 validates :password,…