ユーザーが仕事を作成して応募できるアプリを作成しています。
私が抱えている問題は、3 つのモデル間の関連付けを正しくすることです。
現在、私は以下を持っています:
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
Apps のデータベース テーブルには、関連付けが正しく行われるように、user_id と job_id の 2 つの列が追加されています。
また、新しいアプリケーションなどのフォームを作成する方法もわかりません。現在、私は以下を使用していますが、ユーザーのネストされたリソースとしてアプリを持っていないため、これが問題の原因であるかどうかはわかりません:
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