0

我想要做的就是創建將用於張貼3個固定類崗位安置模式,即實習,企業和freelance.There將放置的菜單,這將有3名作爲實習生,企業和自由職業者,並根據用戶的選擇,這3個類別的相同的工作崗位表格將顯示創建工作崗位。 雖然顯示jobposts不同視圖將根據類別顯示。如何實現jobpost功能,擁有3個固定categoris

我不明白我應該如何實現這一點。我是否應該將展示位置和類別創建爲不同的模型,並將關聯設置爲has-many類別中的展示位置和屬於類別中的展示位置,但是如果我這樣做,模型我有3個固定的選擇,我不會接受來自用戶的選擇,所以我怎樣才能在模型中添加這3個選擇將被固定併爲他們添加jobposts分類?

我怎樣才能實現這個位置的事情嗎?

回答

0

這很簡單,你可以通過多種方式實現的一種方法是創建工作類型具有3個類別中的一個,並給下拉,同時創造就業崗位。

爲了便於找出3類創建範圍,想

scope :freelance,where("job_type = ?",'freelance') .... 

JobPost.freelance給自由職業者的工作職位。

+0

我認爲這個選項,但我提供了3個鏈接不下拉列表... – NJF

0

定義模型作爲

Class Jobpost 
    belongs_to :resource, :polymorphic => true, :dependent => :destroy 
    accepts_nested_attributes_for :resource 
    def resource_attributes=(params = {}) 
    self.resource = spec_type.constantize.new unless self.resource 
    self.resource.attributes = params.select{|k| self.resource.attribute_names.include?(k) || self.resource.class::ACCESSOR.include?(k.to_sym)} 
    end 
end 

class Freelancer 
    has_one :jobpost, :as => :resource 
end 

字段添加到Jobpost爲創建字段(RESOURCE_ID:整數,RESOURCE_TYPE:字符串)

#jobposts table 
t.references :resource, :polymorphic => true 

的視圖

= form_for(@jobpost, :url => jobposts_path, :method => :post) do |f| 
    = fields of Jobpost 
    = f.fields_for :resource, build_resource('freelancer') do |freelancer| 
    = fields of Freelancer 

的Jobpost助手爲

module JobpostsHelper 
    def build_resource(klass) 
    klass = "{klass.capitalize}" 
    object = eval("#{klass}.new") 
    if @jobpost.resource.class.name == klass 
     object = @jobpost.resource 
    end 
    return object 
    end 
end 

使用JavaScript來顯示子類別(自由職業者等)被點擊的鏈接,當自由職業者的領域。當提交表單時,所有子類別的所有字段都會被提交,但它們會在'resource_attributes ='方法中被過濾掉。