質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

1852閲覧

[Rails5]edit画面をmodalフォームにしたい。

kosuke_ikeura

総合スコア19

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1グッド

0クリップ

投稿2020/03/13 12:49

編集2020/03/14 09:50

いつもお世話になっております。
環境
CentOS7
virtualbox vagrant
rails5.2.4.1
ruby2.5.1

【やりたいこと】
表題通り、edit画面をmodalフォームにして、submitを押すとupdateアクションが呼ばれるという機能を作りたいです。
具体的に説明すると、、
イメージ説明
上の画像のつぼをクリックすると、
イメージ説明
(これはデザインを考えるときに作成したphotoshopのスクリーンショットです。
そのため、現状ではこのツボをクリックしてもこのmodal-formは出てきません。)
このようなmodal-formを表示し、アップデートのボタンを押せば、ツボの色が変わるという使用にしたいです。(例えば、サラダ油のツボが黄色だと思いますが、これをクリックしてmodal-formを表示させ青を選択しアップデートする、みたいな感じです)

【試したこと】
https://qiita.com/niwaken/items/ffbce52fb024fd369f24
こちらの記事を参考にbootstrap4を使用して、modalを表示させることはできましたが、自分のやりたいデザインを実現することが難しかったため、javascript jQueryのみでやろうと考えています。

【わからないこと】
index.hrml.erb(1枚目の画像のページ)とedit.js.erbと_form.html.erbを作成し、以下のように記述。
edit.js.erb

ruby

1$("#flavor-modal").html("<%= escape_javascript(render 'layouts/form') %>") 2$("#flavor-modal").modal("toggle")

index.html.erb

ruby

1<% @flavors.each do |flavor| %> 2 <div class="flavor"> 3 <%= link_to image_tag(@StatusImage[flavor.status]), edit_flavor_path(flavor), remote: true, class: "StatusImage" %> 4 <p><%= flavor.name %></p> 5 </div> 6<% end %> 7<div id="flavor-modal"></div>

_form.html.erb https://syncer.jp/jquery-modal-window

ruby

1# 上のリンクを参考にしました。 2<div id="modal-content"> 3 <%= form_with(model: @flavor, local: true) do |form| %> 4 <%= form.radio_button :status, 1 %> 5 <%= form.radio_button :status, 2 %> 6 <%= form.radio_button :status, 3 %> 7 <%= form.submit "アップデート" %> 8 <% end %> 9<div id="modal-overlay"></div>

application.html.erb

css

1/* start modal test */ 2#modal-content{ 3 width:50%; 4 margin:1.5em auto 0; 5 padding:10px 20px; 6 border:2px solid #aaa; 7 background:#fff; 8 z-index:2; 9} 10 11.modal-p{ 12 margin-top:1em; 13} 14 15.modal-p:first-child{ 16 margin-top:0; 17} 18 19.button-link{ 20 color:#00f; 21 text-decoration:underline; 22} 23 24.button-link:hover{ 25 cursor:pointer; 26 color:#f00; 27} 28#modal-overlay{ 29 z-index:1; 30 display:none; 31 position:fixed; 32 top:0; 33 left:0; 34 width:100%; 35 height:120%; 36 background-color:rgba(0,0,0,0.75); 37} 38/* end modal test */

flavors_controller.rb

ruby

1 def edit 2 @flavor = Flavor.find(params[:id]) 3 end 4 def update 5 @flavor = Flavor.find(params[:id]) 6 @flavor.update(flavor_params) 7 if @flavor.status == 1 8 @flavors_1 = Flavor.where(status: 1) 9 @users = User.all 10 user_ids = @users.map(&:id) 11 flavor_ids = @flavors_1.map(&:id) 12 SeasoningMailer.send_status_1(user_ids, flavor_ids).deliver_later 13 end 14 @flavors = Flavor.all.order(id: "ASC").page(params[:page]).per(10) 15 redirect_to flavors_path 16 end

現状はツボをクリックしても反応しないです。。。
もしわかる方がいればご教示いただければ幸いです。
よろしくお願い致します。

s.k👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatsu

2020/03/13 16:53

アップデートボタンのあるコードと アップデートアクション周りのコードがあると回答の参考になるかもです。
kosuke_ikeura

2020/03/13 17:29

ご指摘ありがとうございます。 追記致しました。
guest

回答1

0

<%= form_with(model: @flavor, local: true) do |form| %>

で使われている local: trueは外すといいかもです。
参考:【Rails】form_with (local: true)について

投稿2020/03/13 17:43

hatsu

総合スコア1809

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kosuke_ikeura

2020/03/13 19:58

外しましたが、できませんでした。。 ログを見ると、edit.js.erbは読み込まれているようです。 edit.js.erbがおかしい。。??
hatsu

2020/03/14 02:26

>現状はツボをクリックしても反応しないです。。。 edit.js.erbは読み込まれていて、アップデートボタンを押しても動かない認識ですが、あってますか? もしあればアップデートボタンを押したときのログをみたいです。
kosuke_ikeura

2020/03/14 09:48

ツボを押したら、edit.js.erbは読み込まれるが、modal-formが出てこないという感じです。 なのでアップデートボタンは出てきません。 すみません。おそらく説明不足で、2枚目の写真はデザインを考えるときに作ったphotoshopでの画像のスクリーンショットです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問