ここに私の協会があります:
- ユーザーは多くのプロジェクトを持っているため
- プロジェクトは 1 人のユーザーに属します
ユーザーモデル (user.rb)
class User < ActiveRecord::Base
has_many :projects
attr_accessible: :available, :department, :name, :skills, :title, :photo
end
プロジェクトモーダル (project.rb)
class Project < ActiveRecord::Base
belongs_to :user, :foreign_key => :user_id
attr_accessible :project_name
end
これが私のshow.erb.htmlファイルのコードです
<%= @user.projects.each do |project| %>
<p><%= projects.project_name %></p>
<% end %>
しかし、これは「[]」のように 2 つの括弧を表示するだけです。これは空の配列だと思います。
したがってProject.find(1)
、プロジェクトがユーザーに関連付けられているかどうかを確認するために Rails コンソールで実行すると、次のように表示されます。
=> #<Project id: 2, project_name: "This is a project. ", created_at: "2012-11-12 02:29:28", updated_at: "2012-11-12 02:29:28", user_id: nil>
ユーザーIDなし?何が得られる?!
私が間違っていることを知っている人はいますか?ありがとうございました!
編集:
外部キーを追加する移行は次のとおりです。
class AddForeignKeyToProjects < ActiveRecord::Migration
def change
add_column :projects, :user_id, :integer
end
end
編集2
これがコントローラーのインスタンスです(これがおそらく問題です)
プロジェクトコントローラー
def new
@project = Project.new(params[:project], params[:user_id])
end
ユーザーコントローラー
def show
@user = User.find(params[:id], params[:project_name])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @user }
end
end