0

我目前正在开发一个网络应用程序,承包商(电工、屋顶工、水管工)等可以在线提出建议。客户将向承包商提供项目的图片、youtube 视频和文本描述。

到目前为止,我正在使用载波处理图片功能

这是我的架构中这个模型的表

  create_table "project_pictures", force: true do |t|
    t.string   "name"
    t.string   "picture"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

这是我在 Rails 控制台中的两条记录

 ProjectPicture Load (0.4ms)  SELECT "project_pictures".* FROM "project_pictures"
 => #<ActiveRecord::Relation [#<ProjectPicture id: 2, name: "Request for Siding Quote Customer A", picture: "siding.jpg", created_at: "2013-08-15 16:10:22", updated_at: "2013-08-15 16:47:02">, #<ProjectPicture id: 1, name: "Request for Siding Quote Customer A", picture: "sidingrequest.jpg", created_at: "2013-08-14 01:54:27", updated_at: "2013-08-15 16:47:39">]> 

问题是我正在尝试将多张图片链接到一位客户。假设上面两张图片属于一位客户,因为有两张图片,所以有两行。

我如何在表格中引用它,假设我有一个客户,那就是我“judy”,这两个记录都应该引用 judy 的 id?

然后最终在视图中,我可以使用属于客户 ID 1 的图像标签绘制两张图片 - 名称 =“judy”或只是客户 ID = 1?

如果我没有说清楚,请告诉我,我对表格关系不太熟悉,哪种关系对我最有帮助。

4

2 回答 2

0

  create table :projects do |t|
    t.references :clients
    t.timestamps
  end

create_table :pictures do |t| t.string :name, null:false t.string :location, null:false t.references :projects, null:false t.timestamps end

...同时..回到模型层

class Project < ActiveRecord::Model
   has_many :pictures, :dependent => destroy
end

class Picture < ActiveRecord::Model belongs_to :project validates_presence_of :project end

获取所有 Judy 的照片

Client.where("name like ?", "Judy").projects.first.pictures

于 2013-08-15T18:21:56.747 回答
0

我会这样设置

用户 has_many project_pictures

project_pictures 属于用户

您的项目图片表应该有一行用于 user_id。

于 2013-08-15T18:23:51.177 回答