在Ruby on Rails中,创建动态输入(订单)页面的最简单方法是什么?

时间:2013-01-09 15:34:38

标签: ruby-on-rails ruby-on-rails-3 forms web-applications dynamicform

我是网络开发的新手(我在服务器方面有多年的经验)。 我需要创建一个输入订单信息的页面。 例如:项目名称,数量,价格 然后可以单击“添加”按钮,将出现另一行输入,用户可以填写该输入。 最后,用户点击“提交”并处理订单。

现在我知道如何制作一个winforms应用程序来做到这一点,但我是rails的新手,一般来说,对于web开发,有人可以指点我正确的技术/包吗?

也许某人有相关教程的链接? (我已经完成了大部分的rails教程,但没有看到类似的东西)

谢谢!

4 个答案:

答案 0 :(得分:2)

您需要为各个订单商品设置Order型号和OrderItem型号(名称,数量,价格)。 Order模型与OrderItem有多对一的关系。 Order接受订单商品的嵌套属性。为Order创建表单以及OrderItem属性的字段。对于Add button功能,请使用Cocoon。您现在需要做的就是将其保存在create操作中。

Cocoon的主页包含几个可以适应您的问题的示例 - project/tasksorder/order_items关系相同。另请查看讨论类似主题的#196 Nested Model Form Part 1

如果没有解决您的问题,我们希望能为您提供一些帮助。

答案 1 :(得分:1)

http://railscasts.com/episodes/196-nested-model-form-part-1
http://railscasts.com/episodes/197-nested-model-form-part-2

这两个屏幕演员可能几乎与你想要完成的完全相同,只是不同的背景。它们很旧,但基础仍然适用。这些天我可能会以不同的方式处理javascript部分。

答案 2 :(得分:1)

您需要 dynamic nested model forms

这是 gem that makes it work out of the box

注意:您需要使用jquery或原型javascript框架。

最常见的问题之一:

确保父模型具有 attr_accessible:children_attributes

示例:学校has_many:学生,您需要学校模型中 attr_accessible:students_attributes

您可以在RailsAPI页面上阅读 accepts_nested_attributes_for

答案 3 :(得分:-1)

如果您不熟悉rails并想快速进入它,请查看本指南:

http://guides.rubyonrails.org/getting_started.html

第5点(Generate a Scaffold)符合您的需求。

创建新的rails应用程序后,您可以运行:

rails generate scaffold Order name:string quantity:string price:integer

这将生成与订购流程相关的Controller,Model和Views。

运行

rake db:setup
rake db:migrate

准备数据库

现在一切都很好,你有一个页面,用户可以输入订单信息并保存(女巫应该适合你的开始需要)。使用

启动服务器
rails s

并检查出来。