以下是我的联想:
- 由于用户有很多项目
- 一个项目属于一个用户
用户模型(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 %>
但这只是显示两个像这样的括号“[]”。这让我觉得这是一个空数组。
因此,当我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