0

我有一个单一的表格,其中有车辆详细信息、投诉详细信息和用户详细信息。车辆有_many 投诉和用户有_many 投诉。它是一个nested_attribute 表格,但由于某种原因,我觉得该关联是错误的,我对表格应该如何或它有点困惑应该是投诉has_one 车辆和投诉has_one 用户??我在创建投诉时创建新用户和新车辆。此表单没有任何身份验证..

车辆.rb

 class Vehicle < ActiveRecord::Base
   attr_accessible :number, :vehicle_types , :complaints_attributes
   has_many :complaints
   accepts_nested_attributes_for :complaints
 end

用户.rb

 class User < ActiveRecord::Base
  attr_accessible :address, :email_id, :mobile , :complaints_attributes
  has_many :complaints
  accepts_nested_attributes_for :complaints
 end

投诉.rb

class Complaint < ActiveRecord::Base
  attr_accessible  :indecent_behaviour, :occurence_date_time, :other_complaints,      :place_occurence
  belongs_to :user
  belongs_to :vehicle 
end

谢谢

4

1 回答 1

0

为什么用户和车辆会有嵌套的投诉对我来说没有意义。您可能不会在创建新用户和新车辆的同时创建投诉。你是?

大概是制造了用户,制造了车辆,然后用户抱怨车辆,此时进行了抱怨。按时间顺序晚于创建用户或车辆的时间。

所以,也许取出嵌套属性。相反,您可以使用隐藏字段并将车辆 ID 作为参数传递,或者您可以使用嵌套资源路径来获取车辆 ID。通过投诉的 current_user 的 has_many 关联创建投诉:

new_complaint_path( vehicle_id: @vehicle.id )

在投诉控制器中

def new
  @complaint = current_user.complaints.build
  @complaint[:vehicle_id] = params[:vehicle_id]
end
于 2013-04-23T07:25:16.303 回答