我有单一的表格,我有车辆详细信息,投诉详情和用户详细信息。车辆有很多投诉和用户有很多投诉。它是一个嵌套的表格形式,但由于某种原因,我觉得这种关联是错误的,我很少混淆表格应该如何是或者应该投诉has_one车辆和投诉has_one用户? 我在创建投诉时创建新用户和新车。此表单没有任何身份验证..
Vehicle.rb
class Vehicle < ActiveRecord::Base
attr_accessible :number, :vehicle_types , :complaints_attributes
has_many :complaints
accepts_nested_attributes_for :complaints
end
User.rb
class User < ActiveRecord::Base
attr_accessible :address, :email_id, :mobile , :complaints_attributes
has_many :complaints
accepts_nested_attributes_for :complaints
end
Complaint.rb
class Complaint < ActiveRecord::Base
attr_accessible :indecent_behaviour, :occurence_date_time, :other_complaints, :place_occurence
belongs_to :user
belongs_to :vehicle
end
由于
答案 0 :(得分:0)
对我来说没有意义的是为什么用户和车辆会有嵌套投诉。您可能不会在创建新用户和新车辆的同时创建投诉。你呢?
据推测,制造用户,制造车辆,然后用户抱怨车辆,此时进行投诉。按时间顺序比创建用户或车辆时更早。
所以,也许可以取出嵌套属性。相反,您可以使用隐藏字段并将车辆ID作为参数传递,或者您可以使用嵌套资源路径来获取vehicle_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