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

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

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

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

Ruby

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

Q&A

解決済

1回答

301閲覧

多対多のビューの表示のさせ方が分からない

morimi714

総合スコア24

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2019/04/14 03:39

rails初心者です。
多対多のビューを作ることになり、中間テーブルを用意したものの、どのようにビューに表示すれば良いのかわからず途方に暮れています。お力を貸していただけると嬉しいです。

目標:下のようなテーブル形式のチェックボックスをform_forで作ること

曜日/時間 月曜 火曜 水曜 木曜 金曜 土曜 日曜
午前    ☑️  ☑️  ☑️  ...
お昼
午後

用意したもの
1.teacher.rb

ruby

1class Teacher < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 4 devise :database_authenticatable, :registerable, 5 :recoverable, :rememberable, :validatable 6 7 has_many :teacher_week_times 8 has_many :hours, through: :teacher_week_hours 9 has_many :weeks, through: :teacher_week_hours

2.week.rb

class Week < ApplicationRecord has_many :teacher_week_hours has_many :teachers, through: :teacher_week_hours has_many :hours, through: :teacher_week_hours end

3.hour.rb

class Hour < ApplicationRecord has_many :teacher_week_hours has_many :teachers, through: :teacher_week_hours has_many :weeks, through: :techer_week_hours end

4.teacher_week_hour.rb

class TeacherWeekHour < ApplicationRecord belongs_to :teacher belongs_to :week belongs_to :hour end

テーブルとカラムの関係
teachers idカラム
weeks monday,tuesday,wednesday,thursday,friday,saturday,sundayカラム
hours hour1,hour2,hour3,hour4カラム

中間テーブルを作る時点で既に間違っている箇所や、form_forで目標のようなビューを作るのに足りないことがあれば教えてくださると嬉しいです。

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

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

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

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

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

guest

回答1

0

自己解決

f.collection_check_boxesで作ることができなかったため、chack_boxタグで作ることにしました。

<table> <tr> <td>曜日/時間</td> <td>月曜</td> <td>火曜</td> <td>水曜</td> <td>木曜</td> <td>金曜</td> <td>土曜</td> <td>日曜</td> </tr> <tr> <td>午前中</td> <td><%= check_box 'weeks','monday', {}, true, false %></td> <td><%= check_box 'weeks','tuesday', {}, true, false %></td> <td><%= check_box 'weeks','wednesday', {}, true, false %></td> <td><%= check_box 'weeks','thursday', {}, true, false %></td> <td><%= check_box 'weeks','friday', {}, true, false %></td> <td><%= check_box 'weeks','saturday', {}, true, false %></td> <td><%= check_box 'weeks','sunday', {}, true, false %></td> </tr> <tr> <td>13:00~16:00</td> <td><%= check_box 'weeks','monday', {}, true, false %></td> <td><%= check_box 'weeks','tuesday', {}, true, false %></td> <td><%= check_box 'weeks','wednesday', {}, true, false %></td> <td><%= check_box 'weeks','thursday', {}, true, false %></td> <td><%= check_box 'weeks','friday', {}, true, false %></td> <td><%= check_box 'weeks','saturday', {}, true, false %></td> <td><%= check_box 'weeks','sunday', {}, true, false %></td> </tr> <tr> <td>16:00~19:00</td> <td><%= check_box 'weeks','monday', {}, true, false %></td> <td><%= check_box 'weeks','tuesday', {}, true, false %></td> <td><%= check_box 'weeks','wednesday', {}, true, false %></td> <td><%= check_box 'weeks','thursday', {}, true, false %></td> <td><%= check_box 'weeks','friday', {}, true, false %></td> <td><%= check_box 'weeks','saturday', {}, true, false %></td> <td><%= check_box 'weeks','sunday', {}, true, false %></td> </tr> <tr> <td>19:00~22:00</td> <td><%= check_box 'weeks','monday', {}, true, false %></td> <td><%= check_box 'weeks','tuesday', {}, true, false %></td> <td><%= check_box 'weeks','wednesday', {}, true, false %></td> <td><%= check_box 'weeks','thursday', {}, true, false %></td> <td><%= check_box 'weeks','friday', {}, true, false %></td> <td><%= check_box 'weeks','saturday', {}, true, false %></td> <td><%= check_box 'weeks','sunday', {}, true, false %></td> </tr> </table>

一応できたので、これでよしとします。

投稿2019/04/18 01:09

morimi714

総合スコア24

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問