Rails

form_with .date_select 保存できない パラメータ

Railsのフォームヘルパーであるform_with であるが、面倒なところがまたあった。 form_withのメソッドで年月日をセレクトボックスで入力できるようにする.date_select というものがある。これ、便利だけれど、パラメータの保存が面倒だったので備忘録。 form…

has_one で, field_for を使う, accepts_nested_attributes_for

railsのヘルパーメソッドであるform_withでDBに情報登録する際に、主たる保存先のテーブル以外のところにレコードを保存したい時に使うのが、fields_forメソッドである。 今回はUserのテーブルに個人情報を登録する際、住所も入力させる。その際、住所はAddr…

has_one で, field_for を使う, accepts_nested_attributes_for

railsのヘルパーメソッドであるform_withでDBに情報登録する際に、主たる保存先のテーブル以外のところにレコードを保存したい時に使うのが、fields_forメソッドである。 今回はUserのテーブルに個人情報を登録する際、住所も入力させる。その際、住所はAddr…

Can't resolve image into URL: undefined method `to_model'

画像表示ができないエラーである。 ●前提 ・carrierwaveで画像を投稿できる機能をつけて、投稿画像を一覧画面で表示しようとしています。 ・seedファイルを使って初期表示用のアイテムをDBに登録済みである。そこで入れた画像データは’いらすとや’の画像のUR…

Excon::Error::BadRequest in ●●Controller#●● S3に Carrierwaveで credentials

以前AWSのS3バケットにデータを保存する設定をしました。そこにCarrierwaveで画像を保存したいとおもっていろいろ設定したんです。その設定が間違っていたらしく、タイトルの文言のエラーが出ました。その備忘録。 ●エラー画面 ●前提 ●AWSのS3バケットのSECR…

credentials.yml.enc デプロイ 設定 本番環境

Rails5.2から、以前のsecrets.ymlに変わって新たに導入されるようになった秘密情報の管理ファイルであるcredentials.ymlの使い方をまとめる。 <やること> ●AWSのS3バケットのSECRET_ACCESS_KEYをcredentials.ymlでアクセス・管理できるようにする ●そのSEC…

rails ルーティング (.:format)  とは 何

rails routes のコマンドをターミナルで入力すると、Railsで作られているルーティングの一覧が表示されます。 $ rake routes Prefix Verb URI Pattern Controller#Action tweets GET /tweets(.:format) tweets#index POST /tweets(.:format) tweets#create n…

git-secrets Argument list too long コミット できない

新しいアプリを立ち上げようとrails newした。そして作ったアプリのレポジトリをGit hubにあげようとしたらエラーが出た。 $ git commit -m "first commit" $ /usr/local/bin/git-secrets: line 109: /usr/local/Cellar/git/2.19.0_1/libexec/git-core/git: …

coffeeファイルに気をつけろ

javascriptのファイルが読み込まれない!? 延々と悩まされました。個人作成のものだったので1ヶ月だらだらと悩み続け、問題を先送りにし、解決しないままだらだらと過ごしました。 Railsで画像投稿機能をつけようと思って。それにJavascriptで複数枚の画像…

破壊的なメソッド! 真偽値なメソッド?

Rubyのメソッドに「!」や「?」がつくメソッドがある。愉快だなって思っていたけれど、ちゃんときちんとしっかり意味があるので、まとめておく。 ●破壊的メソッド(!) 大元のオブジェクトの値を変更してしまう。メソッドは変数とかに一時的に演算処理を施…

ruby のバージョンを変えたら bundle install できなくなった

ruby2.3.1を使っていたので2.5.1にしました。それから開発中のディレクトリでbundle installをしたら、 「 rbenv: rails: command not found The `bundle install' command exists in these Ruby versions: 2.3.1 」 と言われてしまいました。 「ウチじゃ"bu…

migrationファイル --NO FILE-- を解決する

RailsでDBに変更を加える際に、マイグレーションファイルを作ってカラムの追加なりをする。 しかし、マイグレーションファイルの作成とか編集に失敗したからと言って、手動でファイルを削除すればそれが反映されるわけではない。きちんとターミナルでコマン…

form_for って難しい

form_forはRailsの入力フォームを作るときにお世話になるアイツ。 なんか自動で色々やってくれるから簡単にDBに保存できるようになるんだけれど、その自動な部分がよくわかってなくて説明を求められた時に困った。そして間違ったことを言ってしまったので、…

鳴かぬなら killしてしまおう rails s

rails s が途中でフリーズしてうんともすんとも言わなくなった。これはまさに鳴かないホトトギスも同然! 信長「鳴かぬなら killしてしまえ rails s」 殿の命令が下ったので、さっそくやっていきたいと思います。 ●PIDを調べる rails s が動いているProcess …

ヘルパーメソッドをつくろう

Railsにはもともと搭載されているメソッドがある。そのなかにヘルパーメソッドというものがある。 link_to form_tag / form_for / form_with image_tag など、よくお世話になる便利機能である。 ヘルパーメソッドはViewで活用されるものであり、htmlタグの要…

ゲッター・セッター のself

Rubyでメソッド定義していて、self.がつくときがあります。テキトーにやり過ごしていたので、この前「これなんですか?」と質問されてごにょごにょしてしまった。なので調べて備忘録。 self.はクラスメソッドにもつくのですが、今回はそれではなく、セッター…

VScode のコメントアウト(erb)改造したい

最近SublimeTextからVScodeにテキストエディタを変えようとしています。 私はRubyとRailsを主に使っているのですが、.erbファイルをVScodeで書いているときに、コメントアウトが使いづらい。 というのも、erbのコメントアウト・ショートカットキーでは<%# ~ …

do って何?

RubyやRailsでコードを書いていると、eachやwhileなどの繰り返し処理などで array = [1, 2, 3, 4] array.each do |num| p num end みたいなものをよく見る このdoはお約束でつけるものだろうけれど、「正式にはなんていうの?」という質問をこのあいだされて…

(Rails) コントローラーとモデルに書くメソッドの違いって??

RailsでWebサイト的なものを個人で作っていると、コントローラーにはアクション定義して、変数を書いたり、メソッド定義したりするんだけれど、モデルクラスにはあまり書き込まない。 これは素人考えなのだろうけれど、モデルクラス使わなくない? これはき…

resourcesにルーティングを足す

Railsのルーティングの設定にはresourcesという主要7アクションのセットがある。でもそれにルーティングを加えたい時がある。そんな時は、collectionかmemberを書く。 routes.rb resources :items do collection do post :confirm post :review end member …

管理画面と公開画面 namespaceの使いどき

Webアプリケーションの開発では管理画面と公開画面を分けてRoutingを定義して、controllerを作ってアクションを定義していくことがある。そうしないと、例えば同じitems_controller.rbに多くのアクションが定義されて読みづらくなるし、どれが管理画面用アク…