基本示例:
1.我创建了一个新的rails项目,使用以下指令:
rails new tut3
1.我产生了第一个脚手架模型客户
rails generate scaffold customer name:string
1.生成第二个支架模型产品
rails generate scaffold product item:string customer_id:integer
1.我运行了迁移(rake db:migrate),在启动服务器(rails s)并添加了一些客户(例如Mario、安娜等)之后,我进入产品页面,我希望得到一个客户列,其中包含一个下拉表,显示我添加的客户的ID,但我发现我可以插入任何我想要的ID号。为什么会这样?模型产品的客户列应该仅限于我在客户页面中创建的客户ID吗?我如何将产品客户列与我创建的客户名称相关联?
希望我的问题是清楚的...))
2条答案
按热度按时间ldioqlga1#
用途
xqnpmsa82#
rails generate scaffold
为您做了很多工作,但它不能为您做每一件事。你必须手动设置其他的东西。从路由开始,你必须设置它们,这样你就可以使用像
customers/1/products
或customers/2/products
这样的东西。scaffold
不会为你设置这些路由。当您在为产品生成
scaffold
时提到customer_id
时,这意味着产品belongs_to
是客户,您可以在app/models/product.rb
处的代码中检查它。但现在的问题是,客户与产品之间的关系如何。一个客户可以有许多产品,还是一个客户只能有一种产品?在
app/models/customer.rb
中,类似地,你需要改变视图以及两个字段的控制器,这是一个很大的过程。为此,我建议你学习Rails的基础知识,控制器和视图是如何工作的。在那之后,事情对你来说就很容易了。