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

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

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

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

Q&A

解決済

2回答

1221閲覧

Rails4 postされたidに基づいた情報を表示したい

smith

総合スコア73

Ruby on Rails

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

0グッド

0クリップ

投稿2015/01/10 08:47

ユーザーが作成したレコード上で
カラムstockin_idとカラムstockout_idにある
item_idに基づいた情報を表示したいです。

例:
・リレーション
User =(1対n)=> Item
Item =(1対n)=> StockItem

・カラム
・User model
・Item model
user_id
・StockItem model
user_id
stockin_id ←item_idが入る
stockout_id ←item_idが入る

lang

1#Stock view 2<% @stock.each do |item| %> 3 <tr> 4 <th scope="row"><%= 1%></th> 5 <td><%= item.stockin_id%></td> 6 <td><%= item.stockout_id%></td> 7 <td><%= link_to '取り消し', item, method: :delete, data: { confirm: '本当に取り消しますか?' } %></td> 8 </tr> 9<% end %> 10 11 12Stock controller 13def my_stock 14 @user = User.find(current_user.id) 15 @stock = Stock.where(user_id: @user) 16end 17 18

現状はidしか表示できていません
Item modelのtitleで表示し、linkで繋げたいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

質問文にあるコードは次のようになっているので、 id が表示されてしまいますね。
<%= item.stockin_id%>

Item =(1対n)=> StockItem の関係をどのように model 記述しているか不明なので正確にはいえませんが、
<%= item.stockin.title %>
では表示されませんか?

次のような設定にしておく必要があります。
belongs_to :stockin, :class_name => 'Item', :foreign_key => 'stockin_id'
belongs_to :stockout, :class_name => 'Item', :foreign_key => 'stockout_id'

参考:
複数の外部キーがある場合のアソシエーション http://blog.bitmeister.jp/?p=2739

投稿2015/01/11 05:24

katoy

総合スコア22324

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

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

smith

2015/01/12 02:36

ありがとう御座います。
guest

0

まずActiveRecordのアソシエーション(has_many, belongs_to)は正しく理解されていますか?
規約に則ればStockItemモデルの外部参照キーはitem_idが一般的です。
StockInとStockOutを同じテーブル構造で扱いたいのであれば単一テーブル継承を使ってはどうでしょうか?

投稿2015/01/10 16:45

khsy8

総合スコア10

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

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

smith

2015/01/11 00:59

StockItemはuserのpostによって生成されます。 stockin_idとstockout_idに入るtem_idはuserが決めます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問