0

を最初にオフにします。ごめんなさい。私はSailsアプリをRailsに移行していますが、Rails側には初めてのので少し難しかったです。Railsで自動的に更新するhas_many関連を設定して、

私は2つのモデルUserとOrderを持っています。私はhas_many & belongs_toアソシエーションをモデルに設定しました。私はorderにuser_idアソシエーション列を追加しました。

しかし、私はユーザーが何らかの種類の関連列を持っているように感じていますか?

を(私はそれを設定するかどうかはわかりませんが)具体的には、私のような、オーダーを見て、顧客が前に発注したかどうかを伝えることができるようにしたい:

<% @orders.each do |order| %> 
<% if (order.user.orders > 1) %> Y<% end %> 
<% end %> 

しかし、私はユーザーにアクセスできますが、関連するすべてのオーダーにアクセスすることはできません。これを行うために列を設定するにはどうしたらいいですか?新しい注文が割り当てられたら自動的に更新されます。

+0

'belongs_to_many'の関連付けを?注文は複数のユーザーに帰属できますか? – augustoccesar

+0

@augustoccesarおっと、申し訳ありません - タイプミス。 – Joe

答えて

1

あなたのモデルは今十分です:

class Order < ActiveRecord::Base 
    belongs_to :user # foreign_key user_id 
end 

class User < ActiveRecord::Base 
    has_many :orders 
end 

あなたのビューコード:順序は、ユーザーに属していない場合、それはゼロではありませんので、もし

<% @orders.each do |order| %> 
    <% if order.user %> 
    Y 
    <% end %> 
<% end %> 

前には、order.userは、ゼロとなり、注文はユーザーに属し、ユーザーには少なくとも1注文があります!あなたは、ユーザーが任意の順序を持​​っているかどうか確認したい場合は

それ以外の場合は、ちょうどこの操作を行います。

user.orders.count > 0 
+0

ありがとうございました!それは今、数えてすべて動作しています。私のために愚かなエラー、バックグラウンドで私のために行われているすべてのものに慣れていない! – Joe

1

これは親子の状況です。ユーザーは親で、Orderは子です。親は外部キーを格納せず、子のみを格納します。モデルを正しく設定した場合、ユーザーはhas_manyを持つ必要があります。

user.orders 

新しい注文でuser_idが正しく保存される限り、すべて正しく動作するはずです。

+0

助けてくれてありがとう&感謝:)はい、それは今働いています。 – Joe

関連する問題