我正在为RoR的个人项目寻找一些指导。我使用Michael Hartl的在线书籍学习了RoR,现在我正在为自己的教化建立一个不同的应用程序。
我的网络应用程序将类似于电子商务网站,除了销售产品,我将从餐馆销售菜单项目。我已经实现了存储基本信息(姓名,电子邮件等)的用户资源,但我正在寻找有关餐厅资源的指导。
餐厅的“节目”页面应显示餐厅名称,餐厅的段落描述,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进行附件上传。有没有人有任何其他建议或替代方案?这些照片应该可以由管理员用户轻松更改,并且应该属于餐馆。
感谢您的帮助。
答案 0 :(得分:2)
是的,这是一个很好的方法。
要在数据库表字段中存储更多文本,请使用“text”,如下所示:
create_table :products do |t|
t.string :name
t.text :description
end
是的,请选择CarrierWave。一些替代方案: