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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

581閲覧

Rails チェックボックスのチェックがあるかどうかをDBに送信する方法

Romay

総合スコア40

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2019/01/09 01:17

前提・実現したいこと

RailsでかんたんなWebアプリケーションを作っています。
10文字程度の文を1ユーザーにつき100個以下保存する、itemsというテーブルを作っています。

やりたいことは、edit.html.erbで新たにチェックボックスを作り、チェックされているかどうかをデータベースに保存し、チェックされていれば、他のページ(show.html.erb)で、文の上に取り消し線をつけて表示させることです。

itemテーブルに新たに、checkカラムを作り、チェックされているかどうか(0 or 1)を保存し、each文で表示する際に、checkカラムの値によって表示方法を分けるというところまではなんとなくわかっているのですが、どのように進めるべきか見えていません。

発生している問題

@itemsに保存しているtextをeachで1列ずつ表示しながら、チェックボックスにチェックしたitemにチェックしているかどうかのパラメーターを送りたいです。 つまり表示とデータ送信を同時に行うということです。

該当のソースコード

以下現在のusers/edit.html.erbです。

ruby

1 <% if @items %> 2 <% @items.each do |item| %> 3 <tr> 4 <li class="idea"> 5 <td><%= item.text %></td> 6 <div class="checkbox checkbox-right"> 7 <td><label><input type="checkbox" ></label></td> 8 </div> 9 </li> 10 </tr> 11 <% end %> 12 <% end %>

以下Userコントローラーです。

ruby

1 def edit 2 @user = User.find(params[:id]) 3 @items = @user.items 4 end

補足情報(FW/ツールのバージョンなど)

each文で回しながら、checkboxを表示し、チェックされるとデータベースに保存というのがどうすれば同時にできるかわかりません。

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

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

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

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

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

guest

回答1

0

こういう場合は通常Ajaxを使います。
いいね!ボタンみたいなイメージで、その部分だけを書き換えます。
toggleにすればいけそうですね。

投稿2019/01/09 15:25

Yuinyan

総合スコア312

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

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

Romay

2019/01/10 01:43

なるほど、Ajaxで実装するのですね。toggle調べてみます。ありがとうございます。
Romay

2019/02/03 01:04

こちら追加でお答えいただければ大変嬉しいのですが、いいねボタンの場合、新たにモデルを作るのが定石のようですが、このtoggleにするのはそういう意味ではないということでしょうか。itemテーブルにcheckカラムを作るという方針は間違ってないということでしょうか。調べても期待しているものがあまりでて来ず、追加で質問させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問