2013-04-23 107 views
0

我有單一的形式在那裏我有車輛的詳細信息,投訴信息和用戶信息。凡車輛的has_many投訴和用戶的has_many投訴。其一個nested_attribute形式,但由於某種原因,我覺得聯想是錯誤的,即時通訊有點困惑如何形式應該或它應該投訴has_one車輛和投訴has_one用戶?? 和IM創建新的用戶和新的車輛時即時創造一個complaint.This形式沒有任何認證..Rails 3的複雜形式的嵌套屬性

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 

投訴.rb

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

謝謝

回答

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 
+0

感謝reply..Yes即時通訊創建新的用戶和新的車輛時,即時通訊創建一個投訴..這個表格沒有任何驗證.. – shiva 2013-04-23 08:03:17