実現したいこと
rubyの変数をrails6のform_with内のhidden_fieldのvalueのところで展開したいです
経緯
今rails6で簡単な目標管理アプリを作成しています。
そこでカレンダーの好きな日時の欄の「+」をクリックすると「週間目標」か「タスク」が選べてそれぞれの項目で登録できるようにしています。週間目標かタスクをクリックするとモーダルが現れ登録できます。
やりたいことは「+」でクリックした日の日付(2023-9-13など)を取得しそのデータもデータベースに登録したいのですができないため質問させていただいております。
該当のソースコード
_month_calendar.html.erb(simple_calendarというgemのhtmlファイルです。)
<div class="simple-calendar"> <div class="calendar-heading"> <%= link_to t('simple_calendar.previous', default: 'Previous'), calendar.url_for_previous_view %> <span class="calendar-title"><%= t('date.month_names')[start_date.month] %> <%= start_date.year %></span> <%= link_to t('simple_calendar.next', default: 'Next'), calendar.url_for_next_view %> </div> <table class="table table-striped"> <thead> <tr> <% date_range.slice(0, 7).each do |day| %> <th><%= t('date.abbr_day_names')[day.wday] %></th> <% end %> </tr> </thead> <% date = nil %> <tbody> <% date_range.each_slice(7) do |week| %> <tr> <% week.each do |day| %> ⇦ここのdayという変数(2023−9−18といった情報が入っています)をモーダルの中の①で使用したいです <%= content_tag :td, class: calendar.td_classes_for(day) do %> <% date = day%> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">+<span class="caret"></span> </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> <li><a href="#"data-toggle="modal" data-target="#add_weekly_goal" >週間目標</a></li> <li><a href="#"data-toggle="modal" data-target="#add_task">タスク</a></li> </ul> <% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(passed_block) %> <% capture_haml(day, sorted_events.fetch(day, []), &passed_block) %> <% else %> <% passed_block.call day, sorted_events.fetch(day, []) %> <% end %> <% end %> <% end %> </tr> <% end %> </tbody> </table> </div> </div> <div class="modal fade" tabindex="-1" role="dialog" id = "add_weekly_goal"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title">やること</h4> </div> <div class="modal-body"> <%= form_with model: @weekly_goal do |f| %> <%= f.text_field :weekly_goal ,class: "form-control" %> <%= f.hidden_field :start_time, value: ① ,class: "form-control" %> <%= f.hidden_field :monthly_goal_id, value: @monthly_goal.user_id ,class: "form-control" %> <%= f.hidden_field :user_id, value: @user.id ,class: "form-control" %> <div class="modal-footer"> <%= button_to "閉じる", "#", type: "button", class: "btn btn-default ",data: { dismiss: "modal" } %> <%= f.submit "登録",class: "btn btn-primary" %> <% end %> </div> </div> </div> </div> </div>
上記のコードでdateの中に2023-10-1といった情報を格納できています。しかし例えばカレンダーで2023-9-18と記載された場所で週間目標を作成しようとすると必ず日付が2023-10-1という日付でデータが格納されます。私のしたいことはカレンダーで2023-9-18という日付で週間目標を作成することで、なぜ2023-10-1がいつも格納されるのかわかりません。
試したこと
①2023-9-18 といったでデータ(day)をdateというグローバル変数に代入しそのグローバル変数をform_with内で使用する。
⇨どの日付で週間目標を登録しようとして023-10ー1となる。
環境(FW/ツールのバージョンなど)
Pc: MacBook Air(2020)
チップ Apple M1
Os MacOS Montrey(12.2.1)
ruby 3.0.3
rails 6.1.7.6
↓githubのソースコードです
https://github.com/umeshimaru/shared_goal_app.git
あなたの回答
tips
プレビュー