jinkun
@jinkun (じん くん)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

レンジスライダーのmax値を動的に変えたい!

解決したいこと

Ruby on Railsを使って,web上で本のページ数を栞ができるWebアプリshioriをつくっています。
総ページ数が本ごとに違うのに、range_fieldにはmax(総数)を1つしか設定できません。
下の写真にあるページ数は?のところで、つまみを動かすと数値が表示されて。最大値は、ユーザーが決めたページ数に設定したいです。

どうすれば本ごとに総ページ数が変わる、動的なmax値のレンジスライダーができるのか、お聞きしたいです。

環境

macbookPro mysql5.7 rails 6.0.3 ruby2.7.0

スクリーンショット 2022-01-04 19.27.24.png

rangeつまみを実装しているコード

  <%= form_with(model: @book, local: true) do |f| %> 
     <label for="customRange2" class="form-label">今日読んだページ数は?</label>
     <%= f.range_field_tag :now_pages, :min=>0,
     :max=>:page #フォームに設定した総ページ数が出力されない %>
  <% end %>

自分で試したこと

ググりまくって、結局これと言った成果がありませんでした。レンジスライダーのmaxを動的に変更しようとする人がいないのか、情報があまり出てきません。
唯一出てきた情報は、javascriptを使えばページ数のリアルタイム表示ができるぐらいで、それを使えばモデルと関連づけれるのかなぐらいで、あまりしっかりとした答えがわからず、質問した次第です。

よろしくお願いします。

0

1Answer

:max=>:page は不正です。 :max オプションには数値を指定する必要があります。 @book.page に本のページ数が入っているのなら :max=>@book.page と指定すればいいでしょう。

0Like

Comments

  1. @jinkun

    Questioner

    ありがとうございます!
    :max=>:page は不正定義だったのですね!!
    すぐに実装して、確かめてみようと思います!!

Your answer might help someone💌