0

私がしたいことは、3つの固定カテゴリ、つまりインターンシップ、企業、フリーランスのジョブを投稿するために使用されるプレースメントモデルを作成することです。インターンシップ、コーポレート、フリーランスの3つのメニュ、ユーザーの選択に基づいて、これらの3つのカテゴリでは、求人を作成するために同じ求職フォームが表示されます。 ジョブポストを表示しているときに、カテゴリに基づいて異なるビューが表示されます。3つの固定カテゴリを持つjobpost機能を実装する方法

私はthisを実装する必要がありません。私は別のモデルとして配置とカテゴリを作成し、配置にhas-manyカテゴリとして所属し、categoryに配置することが必要ですが、モデル私は3つの固定された選択肢を持っており、私はその選択肢をユーザーから受け入れるつもりはないので、どのようにしてこれらの3つの選択肢をモデルに追加して固定し、それらのジョブポストをカテゴリワイドに追加できますか?

このプレースメントの実装方法を教えてください。

答えて

0

3つのカテゴリのうちの1つを持つjob_typeを作成し、ジョブポストを作成するときにドロップダウンを行う方法はさまざまです。

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

JobPost.freelanceのような3つのカテゴリーのためのスコープを作成見つけるのは簡単のために

は、フリーランスの仕事のポストを与えます。

+0

私はこのオプションを考えましたが、私はドロップダウンではない3つのリンクを提供しています... – NJF

0

フィールド(RESOURCE_ID:整数、RESOURCE_TYPE:文字列)を作成するよう

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にフィールドを追加してモデルを定義

= 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 

として

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

ビューをジョブポストヘルパーとして

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 

Freelancerのリンクをクリックすると、javascriptを使用してサブカテゴリ(フリーランサーなど)のフィールドを表示します。フォームが送信されると、すべてのサブカテゴリのすべてのフィールドが送信されますが、 'resource_attributes ='メソッドで除外されます。

関連する問題