Rails
mkdir app-name && cd $_ rbenv local 3.0.3 ls -a . .. .ruby-version ruby -v ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-darwin19] gem search ^rails$ -l *** LOCAL GEMS *** (※何もなかった) gem i -v 6.1.4.1 rails gem search ^rails$…
ファイルサイズのバリデーション(10MBまで可、みたいな)は CarrierWave の中に組み込まれていますが、縦横の大きさについてバリデーションする機能は現状ありません(ActiveStorage なら簡単にできるらしいですね)。 今回はその「CarrierWave で縦横の大…
formaction を使ってプレビュー機能を実装したりすると思いますが、だいたい formtarget: '_blank' も一緒に使うと思います。 formtarget: '_blank' を使うと、プレビューは別タブで表示されます。 また元のタブに戻ってフォームを送信する、という操作を期…
※どちらかというと自分への備忘記事になります。 タイトルのままですが、以下のような場合に、 create_table "books", force: :cascade do |t| t.string "title" t.integer "price" t.boolean "published" # ... end 以下のようになります。 [2] pry(main)> …
行けたら行く的な。 結論 @person.non_existing_method if @person.respond_to?(:non_existing_method) # => nil は、 @person.try(:non_existing_method) # => nil と同じだと、https://api.rubyonrails.org/classes/Object.html#method-i-try にありました…
length() https://api.rubyonrails.org/v6.1.3.2/classes/ActiveRecord/Associations/CollectionProxy.html#method-i-length コレクションがすでにロードされている場合、length と size は同等です。そうでない場合で、とにかくレコードが必要になる場合、…
基本 以下のように Turbo Streams なレスポンスを返すと、指定した id(この例だと id="messages") の要素に対してストリームアクション(この例だと prepend)できます。 指定したDOMだけに変更を加えることができるので、よりSPAっぽくなります。 ストリ…
Range でない書き方と並べて書くことで、覚えやすくしています。 beginless, endless の less の部分(..の端)に指定したカラムの値が来るイメージでしょうか。 でも結局、毎回 rails console で確認するのがよさそうではあります。 以下 Book.where('relea…
前提 Rails で、turbo-rails を使用しています。 最も基本的な動き 編集ボタンを押すと、turbo_frame_tag 'edit_room' の部分が、edit.html.haml の turbo_frame_tag 'edit_room' の部分で置き換わります。 ↓app/views/rooms/show.html.haml = turbo_frame_t…
$ yarn add bootstrap @popperjs/core ↓app/javascript/packs/application.js import 'bootstrap' import 'stylesheets/application' ↓app/javascript/stylesheets/application.scss @import '~bootstrap/scss/bootstrap'; 参考 Webpack と Bundler · Bootst…
事象 (gem 'rmagick' を記述してから) $ bundle install The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32…