2016-05-03 13 views
-1

私はRailsを使い始めています。私は、ユーザプロファイルがジョブに適用できるアプリケーションを構築しています。私は関連を通してhas_manyを作成しました。しかし、コントローラとビューを定義する方法は見つけられません。ここに私のコードは次のとおりです。Has_many through association - 表示しますか?コントローラ?

モデル:

class Profile < ActiveRecord::Base 
    has_attached_file :profileimg, :default_url => ":style/profile-img.jpg" 
    validates_attachment_content_type :profileimg, content_type: /\Aimage\/.*\Z/ 
    belongs_to :user 

    has_many :relationships 
    has_many :jobs, through: :relationships 
end 

class Job < ActiveRecord::Base 
    belongs_to :employer 

    has_many :relationships, dependent: :destroy 
    has_many :profiles, through: :relationships 


end 

class Relationship < ActiveRecord::Base 
    belongs_to :profile 
    belongs_to :job 
end 

PS:私は、Railsのコンソール上の関係を作成することができ、それが動作します。

RelationshipsControllerを書くにはどうすればよいですか? current_user.profileがそのジョブに適用できるボタンを私のJobページにどのように置くのですか?

答えて

0

あなたのビューは、このような何かを示さなければならない

resources :jobs do 
    member do 
    post 'apply_for_job' 
    end 
end 

誰かが上記のルートにAJAX要求を送信Apply For This Jobボタンをクリックすると。そして、この前に、私はProfileUserの間に、User has_one ProfileProfile belongs_to Userのような関係があると思います。

def apply_for_job 
    @job = Job.find params[:id] #This should be in a before_filter 
    @profile = current_user.profile 
    @profile.relationships.create(job: @job) 
    respond_to do |format| 
    format.js 
    end 
end 

そしてviewsjobsフォルダapply_for_job.js.erbでビューを作成し、Apply For This JobSuccessfully Appliedにすることによって、例えばのように応じて応答:だからjobs_controllerでアクションを作成します。私は上記のエラーを処理していないので、必要に応じてそれを行うことができますが、これはあなたに基本的な考えを与えるはずです。

これが役に立ちます。

+0

ありがとう!!ええ、プロフィールとユーザーはあなたが提案した関係を持っている、私はちょうど質問にそれらを書いていない。私はこれを試してみましょう:) –

+0

ルートにルートを追加すると、「間違った引数(与えられた1、期待された0)」が返されます。 –

+0

ああ、私の構文エラーでした。 。 – Deep

0

コントローラはただのファイルです。app/controllersです。 jobs_controller.rbを手動で追加するか、rails g controller JobsをCLIで追加してください。

ビューはapp/views/jobs/になります。 rails g scaffold Exampleを実行してモデルのフルセットを取得するのが最善の方法ですが、コントローラ&ビューを参考にするか、チュートリアルで作業してください。

Job   Apply For This Job 

はこのようJob内のメンバーのルートを作成します:

+0

ありがとうございました!私はその構造を理解している。しかし、私は関係のためのCreateメソッドを開発する方法を知らない。 –

関連する問題