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

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

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

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

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

解決済

Rails4にて、チェックボックスで複数選択した値を中間テーブルに挿入する方法

rendezvous_pc
rendezvous_pc

総合スコア0

Ruby

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

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

1回答

0評価

1クリップ

5426閲覧

投稿2016/09/14 15:28

編集2022/01/12 10:58

Rails4にて、中間テーブルにデータを挿入する方法を探しております。
つたない文章で大変申し訳ないのですが、ご回答をいただけると幸いです。

■対象テーブル
users(id, name)
jobs(id, name)
user_jobs(id, user_id, job_id)

■実現したい内容
user情報を編集する画面にて、
jobsテーブル内のデータの数だけチェックボックスを表示させ、
チェックされたjobデータの数だけ、
user_jobsテーブルにレコードを挿入したい

■備考
user情報を編集する画面では、
氏名(users.name)の更新と、
職種(user_jobs)レコードの新規作成、削除を目的としています

■参考にした記事
https://teratail\.com/questions/19499

■ソース

モデル

Ruby

class User < ActiveRecord::Base authenticates_with_sorcery! has_many :user_jobs has_many :jobs, :through => :user_jobs accepts_nested_attributes_for :user_jobs, allow_destroy: true end

Ruby

class UserJob < ActiveRecord::Base belongs_to :user belongs_to :job end

コントローラー

Ruby

class UsersController < ApplicationController def edit @user = current_user @user\.user_jobs\.build @job = Job\.all end def params_user params\.require\(:user\)\.permit\(:name\) end end

ビュー

haml

= form_for @user, url: settings_path, method: :put do |f| %h2 設定 \.form-body \.form-group = f\.label :name, "ユーザーID: tanaka tarou", class: "control-label" = f\.text_field :name, class: "form-control" \.form-group = f\.fields_for :user_jobs do |uj| = uj\.label :user_jobs, "職種", class: "control-label" %p -@job\.each do |j| = uj\.check_box :job_ids, { multiple: true, checked: @user\.user_jobs\.include\?\(j\.id\), include_hidden: false }, j\.id = j\.name -# = uj\.number_field :position_id, class: "form-control" = f\.submit "送信する", class: "btn btn-success"``` ■不明点 ・ストロングパラメーターの設定方法 ・ビューのfield_for部分の書き方 ■補足 Web上のソースを色々と参考にさせていただいた結果、 収集のつかない状態となっております。 お見苦しいソースコードとなってしまい、大変申し訳ございません。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

kenny_sayama
kenny_sayama

2016/09/15 00:46

該当のソースコードを載せていただければ回答がしやすいと思います。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

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

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。