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

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

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

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

Q&A

解決済

2回答

2218閲覧

Rails4 別モデルのテーブル情報(idのみ)を取得する為のコードの書き方で困っております。

nk117

総合スコア31

Ruby

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

0グッド

0クリップ

投稿2016/11/08 11:08

編集2017/01/23 14:31

Railsでサイトを作っています。各物件の詳細ページから、お問合わせ(内覧予約)ができるようにしたいのですが、その際に「本id」と「お問合わせ内容」を紐付けしたいと考えています。
物件データを「books」、問い合わせ内容を「requires」としてDBに保存しています。
内覧予約の際に「booksテーブルのid」を、「Requiresテーブルのbooks_id」としてDBに取得するのに、良い方法をご存知でしたらご教授頂けませんでしょうか。何卒宜しくお願い申し上げます。

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

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

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

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

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

guest

回答2

0

だいぶ時間が過ぎてしましましたが、解決済みとさせて頂きます。

投稿2016/12/13 12:06

nk117

総合スコア31

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

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

0

ベストアンサー

質問するときのヒント をご一読ください。
そして最低限RequireモデルとBuildingモデルのコードは開示できる範囲で開示してください。

と、いいたいところですが。。。

問合わせ情報をDBに取得する際、buildingsテーブルのidカラムからrequiresテーブルのbuilding_idカラムに情報をひっぱりたいのです

という事なら

ruby

1building = Building.find(building_id) # building_id を id に持つ building を取得 2require_ = Require.new(building_id: building.id) # building の id を building_id として require を作成 3require_.save # 作成した require を save

という事でしょうか???

もし

ruby

1class Require < ApplicationRecord 2 belongs_to :building 3end 4 5class Building < ApplicationRecord 6 has_many :requires 7end

となっているのであれば

ruby

1building = Building.find(building_id) # building_id を id に持つ building を取得 2building.requires.create

ruby

1building = Building.find(building_id) # building_id を id に持つ building を取得 2require_ = Require.new 3building.requires << require_`

などとする事もできます。

投稿2016/11/08 12:20

hana-da

総合スコア1728

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

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

nk117

2016/11/08 13:44

回答ありがとうございます。 コードの開示すみません。 requires_controller class RequiresController < InheritedResources::Base def show end def new @require = Require.new end def create building = Building.find(building_id) building.require.create respond_to do |format| if @require.save format.html { redirect_to @require, notice: '投稿されました' } format.json { render :show, status: :created, location: @require } else format.html { render :new } format.json { render json: @require.errors, status: :unprocessable_entity } end end end private def require_params params.require(:require).permit(:name, :tel, :email, :require_date, :require_time, :gender, :age, :occupation) end end buildings_controller def index #@buildings = Building.all @q = Building.search(params[:q]) @buildings = @q.result(distinct: true) end # GET /buildings/1 # GET /buildings/1.json def show end # GET /buildings/new def new @building = Building.new end # GET /buildings/1/edit def edit @building = Building.find(params[:id]) @user = User.find(current_user.id) end def find @building = Building.find(params[:id]) @hash = Gmaps4rails.build_markers(@building) do |building, marker| marker.lat building.latitude marker.lng building.longitude end end require.rb class Require < ActiveRecord::Base belongs_to :building belongs_to :user end building.rb belongs_to :user has_many :requires このようにしています。findアクションからリンクでrequire#newに飛ぶようになっています。 初心者ですがどうぞよろしくお願いいたします
hana-da

2016/11/08 20:56 編集

ヒントは読んでいただけたでしょうか? すいませんが結局何がやりたいのかがまったくわからないのです。 質問欄を書きなおしてもらえるとたすかりあます。
nk117

2016/11/08 23:08

hana-daさん 分かりにくい質問で大変失礼致しました。 質問文を編集致しました。分かりやすくなっていることを願います。 何卒お力添え下さい。宜しくお願い致します。 教えて頂きましたコードをrequire#createに記載しましたがエラーとなってしまいました。コード書く場所の認識が誤っておりますでしょうか。
hana-da

2016/11/09 01:27

あ、無関係だったらごめんなさい。
nk117

2016/11/10 10:37

はなーださん お世話になります!確認しました!問題解決しました!有難うございます!次回から同じ質問をしないようにします!宜しくお願い致します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問