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

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

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

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

Ruby

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

440閲覧

rails5 collection_selectで選択したものを表示させる方法

yu_yu

総合スコア7

Ruby on Rails 5

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

Ruby

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2020/05/16 16:52

編集2020/05/16 16:53

_form.htmlerb で collection_select を使い選択したカテゴリをindex.html.erbでUserごとに表示させる方法が分かりません。
分かる方いましたらよろしくお願いします。
index.html.erbの「カテゴリー追加予定」という部分に表示させようと思っています。

Rails ver は5.0.7.2です。
親:User テーブル (company,userid,pass,memo)
子:Schedule テーブル (time,user_id,category_id)
Category テーブル (category)

ruby

1#_form.html.erb 2 3 4<%= nested_form_for(@user) do |f| %> 5 <% if user.errors.any? %> 6 <div id="error_explanation"> 7 <h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2> 8 9 <ul> 10 <% user.errors.full_messages.each do |message| %> 11 <li><%= message %></li> 12 <% end %> 13 </ul> 14 </div> 15 <% end %> 16 17 18 <div class="field"> 19 <%= f.label "企業名" %> 20 <%= f.text_field :company,class:"form-control",placeholder:"企業名" %> 21 </div> 22 23 <div class="field"> 24 <%= f.label "ユーザーID" %> 25 <%= f.text_field :userid,class:"form-control",placeholder:"ユーザーID" %> 26 </div> 27 28 <div class="field"> 29 <%= f.label "パスワード" %> 30 <%= f.text_field :pass,class:"form-control",placeholder:"パスワード" %> 31 </div> 32 33 <div class="field"> 34 <%= f.label "メモ" %> 35 <%= f.text_field :memo,class:"form-control",placeholder:"メモ" %> 36 </div> 37 38 39 40 <%= f.fields_for :schedules do |f| %> 41 <hr class=hr-tag> 42 <div class="field"> 43 <%= f.collection_select :category_id, @categories, :id, :name,{:prompt => "予定を選択"},class:"form-control",id:"select-form"%> 44 <%= f.text_field :time, class:"form-control",placeholder:"日時"%> 45 </div> 46 <div class="buttons"> 47 <%= f.link_to_remove do%> 48 <span class="glyphicon glyphicon-trash color-blue"></span> 49 </div> 50 51 52 53 <% end %> 54 <% end %> 55 56 57 <%= f.link_to_add "予定の追加", :schedules ,class:"button-4-1"%> 58 <%= f.submit "作成",class:"button-4-1"%> 59 60 61 62<% end %> 63

ruby

1#users_controller.rb 2 3class UsersController < ApplicationController 4 before_action :set_user, only: [:show, :edit, :update, :destroy] 5 6 7 # GET /users 8 # GET /users.json 9 def index 10 @users=User.all 11 12 end 13 14 # GET /users/1 15 # GET /users/1.json 16 def show 17 end 18 19 # GET /users/new 20 def new 21 @user = User.new 22 @schedule = @user.schedules.build 23 @categories=Category.all 24 end 25 26 # GET /users/1/edit 27 def edit 28 end 29 30 # POST /users 31 # POST /users.json 32 def create 33 @user = User.new(user_params) 34 35 respond_to do |format| 36 if @user.save 37 format.html { redirect_to @user, notice: 'User was successfully created.' } 38 format.json { render :show, status: :created, location: @user } 39 else 40 format.html { render :new } 41 format.json { render json: @user.errors, status: :unprocessable_entity } 42 end 43 end 44 end 45 46 # PATCH/PUT /users/1 47 # PATCH/PUT /users/1.json 48 def update 49 respond_to do |format| 50 if @user.update(user_params) 51 format.html { redirect_to @user, notice: 'User was successfully updated.' } 52 format.json { render :show, status: :ok, location: @user } 53 else 54 format.html { render :edit } 55 format.json { render json: @user.errors, status: :unprocessable_entity } 56 end 57 end 58 end 59 60 # DELETE /users/1 61 # DELETE /users/1.json 62 def destroy 63 @user.destroy 64 respond_to do |format| 65 format.html { redirect_to users_url, notice: 'User was successfully destroyed.' } 66 format.json { head :no_content } 67 end 68 end 69 70 private 71 # Use callbacks to share common setup or constraints between actions. 72 def set_user 73 @user = User.find(params[:id]) 74 end 75 76 # Only allow a list of trusted parameters through. 77 def user_params 78 params.require(:user).permit(:company, :userid, :pass, :memo,schedules_attributes: [:id, :time, :user_id, :category_id,:_destroy ] ) 79 end 80end 81

ruby

1#index.html.erb 2 3<p id="notice"><%= notice %></p> 4 5<h1>スケジュール一覧</h1> 6<% @users.each do |user| %> 7 8 9 <div class="col-sm-6"> 10 <div class="box30"> 11 <div class="box-title"><%= user.company %> <td ><div class="index-icon"><%= link_to '', user,class:"glyphicon glyphicon-eye-open box-icon "%> </td> 12 <td><%= link_to '', edit_user_path(user) ,class:"glyphicon glyphicon-edit box-icon"%></td> 13 <td><%= link_to '', user, method: :delete, data: { confirm: '削除してもよろしいですか?' } ,class:"glyphicon glyphicon-trash box-icon" %></td></div></div> 14 15 <% user.schedules.each do |schedule| %> 16 <table class="table"> 17 <% schedule.categories.each do |category| %> 18 <%= カテゴリー追加予定 %> 19 <% end %> 20 <%= schedule.time %> 21 </table> 22 <% end %> 23 24 </div> 25 </div> 26 <% end %> 27

ryby

1 2#user.rb 3class User < ApplicationRecord 4 has_many :schedules, dependent: :destroy 5 accepts_nested_attributes_for :schedules, allow_destroy: true 6 7end 8 9 10#schedule.rb 11class Schedule < ApplicationRecord 12 belongs_to :user 13end 14 15 16#category.rb 17class Category < ApplicationRecord 18end

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

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

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

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

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

guest

回答1

0

自己解決

雑なやり方になりましたが自己解決できました。

投稿2020/05/17 09:33

yu_yu

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問