我有三个表User,User_types和Purchases。导轨链接表belongs_to或has_many不工作
用户: ID等
user_purchase_types:ID,类型名称,user_id说明
采购: ID,USER_ID,user_purchase_type_id,注意
用户ca n有任何数量的购买和user_types。购买可以有一个user_purchase_type。
用户可以登录,创建类型,不要购买等等 - 这一切工作清单采购时,看到user_purchase_types.typename,而不是ID号精细
不过,我想,。简单的说,我认为,使用belongs_to,他们已经有了正确的id字段,应该可以工作。但它没有
我试过一百万个belongs_to,has_many,has_many等变体等,但无法获得正确的关系,因此显示的是typename而不是id。
表中有正确的foreign_key id字段,所以这应该工作。
在购买控制器中列出采购时,我使用@purchase = current_user.purchases。 当循环显示在视图中时,我认为我应该能够使用purchase.user_purchase_type.typename,但这给了我一个'NoMethodError'。
我在做什么错,或者我应该对数据库进行denormalise并完成它?
编辑模型作为REQ
class UserPurchaseType < ActiveRecord::Base
belongs_to :user
belongs_to :purchase
attr_accessible :typename, :id
end
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :purchases, :dependent => :destroy
has_many :user_purchase_types, :dependent => :destroy
end
class Purchase < ActiveRecord::Base
belongs_to :user
has_many :user_purchase_types
attr_accessible :date, :user_purchase_type_id, :note
end
index.erb文件
<% @purchases.each do |purchase| %> #this works
<tr>
<td><%= purchase.user_purchase_type.typename %></td> #this fails
<td><%= purchase.date %></td>
<td><%= purchase.note %></td>
</tr><p>
<% end %>
购买控制器
def index
@user_purchase_types = current_user.user_purchase_types # this works
@purchases = current_user.purchases #this works
可以显示USER_TYPE,购买和用户模型 – Naveed
你拼错购买视图“purhcase.user_type.typename”,但我想这不是你的问题吧? – Henrik
类用户:破坏 的has_many:user_purchase_types,:依赖=>:摧毁 私人 endclass用户类型<的ActiveRecord :: Base的 belongs_to的:用户 attr_accessible:类型名称,:ID 结束 –
sopwithpup