3

我正在为我在 RoR 中的个人项目寻找一些指导。我使用 Michael Hartl 的在线书籍学习了 RoR,现在我正在构建一个不同的应用程序来进行自己的启发。

我的 Web 应用程序将类似于电子商务网站,除了销售产品之外,我将销售餐厅的菜单项。我已经实现了一个存储基本信息(姓名、电子邮件等)的用户资源,但我正在寻求有关餐厅资源的指导。

餐厅“展示”页面应显示餐厅名称、餐厅的一段描述、3-5 张照片、一些描述性标签以及带有菜名和价格的完整菜单。我应该如何解决这个数据库问题?我正在考虑在这里创建三个模型,如下所示:

class Restaurant < ActiveRecord::Base
 has_many :dishes, :through => :menus
end

class Menu < ActiveRecord::Base
 belongs_to :restaurant
end

class Dish < ActiveRecord::Base
 belongs_to :menu
 has_one :restaurant, :through :menus
end

这是正确的方法吗?

我对此有两个担忧:

1) 数据库中的字符串属性限制为 255 个字符,不足以存储餐厅描述。我如何在这里进行?我想让管理员用户轻松编辑描述。

2)我如何处理图片?我做了一些搜索,有些人建议使用 CarrierWave 上传附件。有没有人有任何其他建议或替代方案?管理员用户应该可以轻松更改这些照片,并且它们应该属于餐厅。

谢谢你的帮助。

4

1 回答 1

2

是的,这是一个很好的方法。

要在数据库表字段中存储更多文本,请使用“文本”,如下所示:

create_table :products do |t|
  t.string :name
  t.text :description
end

是的,选择 CarrierWave。一些替代方案:

  • 回形针(很好)
  • 自己动手(除非你喜欢学习,否则这是个坏主意)
  • 各种 JavaScript/jQuery/AJAX 上传助手(非常漂亮但更复杂)
于 2012-04-04T01:12:55.337 回答