2012-06-23 57 views
0

我正在創建一個允許用戶創建和應用作業的應用程序。在作業,應用程序和用戶之間創建關聯的正確方法

我遇到的問題是讓我的三個模型之間的關聯正確。

目前,我有以下幾點:

class App < ActiveRecord::Base 
    belongs_to :job 
    belongs_to :user 
end 

class Job < ActiveRecord::Base 
    belongs_to :user, :dependent => :destroy 
    has_many :apps, :through => :users 
end 

class User < ActiveRecord::Base 
    has_many :jobs 
    has_many :apps, :through => :jobs 
end 

在爲我的應用程序的數據庫表我有USER_ID和JOB_ID,使聯想能夠做出正確的有兩個附加列。

我也不確定如何爲一個新的應用程序創建表單。目前,我已經使用以下,但因爲我沒有應用程序,因爲我不能確定用戶的嵌套的資源,如果這是什麼引起的問題:

class AppsController < ApplicationController 

def new 
    @user = current_user 
    @app = @user.apps.build 
end 

def create 
    @user = current_user 
    @app = @user.apps.create(params[:app]) 
    if @app.save 
    redirect_to user_path 
    else 
    render new_app_path 
    end 
end 

<%= form_for [@app] do |f| %> 

<div class = "field"> 
    <%= f.label :name %> 
    <%= f.text_field :name %> 
</div> 

<div class = "field"> 
    <%= f.label :cover_letter %> 
    <%= f.text_field :cover_letter %> 
</div> 

<div class = "field"> 
    <%= f.label :cv %> 
    <%= f.text_field :cv %> 
</div> 

<%= f.submit "Submit" %> 

<% end %> 

這將是巨大的如果有人能夠提供他們如何爲這個應用程序設置關聯的示例,以及他們如何確保相關表單與這個設置一起工作。

在此先感謝您的幫助!

我也把我的應用程序來Github上的情況下,可以幫助任何人:Github Link

回答

1

我認爲會有很多關係到許多用戶和jobs.And應用程序之間可以充當連接表(如jobs_users) 。

所以機型...

class App < ActiveRecord::Base 
    belongs_to :job 
    belongs_to :user 
end 

class Job < ActiveRecord::Base 
    has_many :users 
    has_many :apps, :through => :apps 
end 

class User < ActiveRecord::Base 
    has_many :jobs,:dependent => :destroy 
    has_many :apps, :through => :apps 
end 

而對於嵌套形式通過這個
http://railscasts.com/episodes/196-nested-model-form-part-1?view=asciicast

相關問題