我对使用 Ruby on Rails 几乎是全新的,我正在尝试为我的一个类创建一个包含 3 个表的应用程序。
我最初的计划是使用汽车经销商应用程序。在这个经销店里,我有我的三个模型车辆、评论和推销员。我开始对我真正想要我的应用程序做什么感到困惑。我的关系是车辆有_许多销售员和销售员有_和_属于_许多车辆。然后我关联了我的 Vehicles has_many 评论和评论 belongs_to_vehicle。现在我正在考虑放弃这个想法并重新开始。我认为使用 Customer 模型而不是 Salesman 可能会更好。我什至不知道我的问题是什么,但客户会在这个应用程序中更有意义。
5 回答
当我第一次开始使用 Rails 时,我使用了两个站点作为我的主要参考点。
我从本教程开始。它让我了解了 MVC 框架的基本概念。
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
这个网站帮助我完成了我试图完成的任何特定任务。
首先,想想你的应用程序应该做什么。
其次,考虑如何使用 Rails 进行建模。
您跳过了第一步,现在您显然在第二步中遇到了问题:)
作为一个刚接触 Rails 的人(我一直在学习 Rails,作为我使用了几年的 HTML + CSS 的升级版):我强烈建议您阅读一些指导性教程,例如 Michael Hartl 的教程这里:http ://ruby.railstutorial.org/ruby-on-rails-tutorial-book 。
当您宁愿构建您脑海中的应用程序时,通过指导教程工作并不总是很有趣,但您需要先学习基础知识,然后才能自己动手。在完成教程时,尝试使用教程提供的代码,尝试一些不同的东西,并思考如何将您所学的概念应用到您自己的应用程序创意中。
这种方法将比仅仅试图在你去的时候弄清楚事情要成功得多——你必须了解 Rails 框架的基本概念,否则你永远不会到达你想要去的地方。
听起来你在走路之前就想跑步。Rails 是/可能非常复杂和复杂;需要考虑诸如数据建模、控制器和视图之类的东西。如果您不了解 MVC 的工作原理、面向对象设计和面向对象编程的一般工作原理,那么您将在这个项目上遇到非常困难的时间。
如果我是你,我会从博客开始。做一个汽车经销商网站比你现在准备的要先进得多。我不是说侮辱,只是说实话。
从这里开始:http ://ruby.learncodethehardway.org/book/
这应该让你继续前进。这些教程很棒,应该可以帮助您到达需要去的地方。祝你好运。
这是一个非常人为的例子,你可以玩弄……我添加了评论来解释这些片段。
# This represents a given car dealer
class Dealer < ActiveRecord::Base
has_many :vehicles
has_many :salesmen
has_many :sales
# Example attributes might be:
# dealer's name
# dealer address
# company etc
end
# The car/truck etc
class Vehicle < ActiveRecord::Base
belongs_to :dealer
has_many :sales
# Example attributes might be:
# dealer_id (so you know what dealer has the car)
# make
# model
# color etc
end
# The person who's selling
class Salesman < ActiveRecord::Base
belongs_to :dealer
has_many :sales
has_many :vehicles_sold, :through => :sales
# Example attributes might be:
# dealer_id (so you know what dealer he works for)
# name
# address
# employee number
end
# This is the join table/model between a vehicle & salesman.
# Each row represents the sale of a car.
class Sale < ActiveRecord::Base
belongs_to :vehicle
belongs_to :salesman
# vehicle_id (so you know which car was sold)
# salesman_id (so you know who sold the car)
# sales price
# date sold
# etc
end