我是web开发新手(我在服务器端有几年的经验)。我需要创建一个页面,其中一个输入订单信息。例如:商品名称、数量、价格然后可以点击"添加"按钮,另一行输入将出现,用户可以填充它。最后,用户点击"提交",订单被处理。
现在我知道如何使winforms应用程序这样做,但我是新的rails,一般的web开发,有人能告诉我正确的技术/包吗?
也许有人有相关教程的链接?(我已经做了大部分的rails教程,但没有看到任何类似的东西)
谢谢!
您需要为单个订单项目提供Order
模型和OrderItem
模型(名称、数量、价格)。Order
模型与OrderItem
模型呈正比关系。Order
接受订单项的嵌套属性。为Order
创建一个表单,并为OrderItem
属性创建字段。对于Add button
功能,请使用Cocoon。您现在需要做的就是将其保存在create
action中。
Cocoon的主页包含几个例子,您可以适应您的问题- project/tasks
与order/order_items
关系相同。也可以看看#196嵌套模型表单第1部分,讨论类似的主题。
如果不能解决你的问题,这应该给你一些东西谷歌。
您需要动态嵌套模型表单。
这里有一个gem,它可以使它开箱即用
注意:你将需要使用jquery或javascript原型框架。
最常见的陷阱之一:
确保父模型有attr_accessible:children_attributes。
示例:School has_many:students,在School模型中需要attr_accessible:students_attributes
您可以在RailsAPI页面阅读accepts_nested_attributes_for
http://railscasts.com/episodes/196-nested-model-form-part-1
http://railscasts.com/episodes/197-nested-model-form-part-2
这两个屏幕投射可能几乎与你想要完成的内容相同,只是上下文不同。它们很老了,但基本原理仍然适用。这些天我可能会用不同的方式处理javascript部分
如果你是rails新手,想要快速上手,那么看看这个指南:
http://guides.rubyonrails.org/getting_started.html第5点(生成一个Scaffold)符合您的需要。
创建新的rails应用程序后,可以运行:
rails generate scaffold Order name:string quantity:string price:integer
生成与排序过程相关的控制器、模型和视图。
运行rake db:setup
rake db:migrate
准备数据库
现在一切都应该很好,你得到了一个页面,用户可以输入订单信息并保存它(这应该适合你的开始需要)。使用
启动服务器rails s
查看一下