Ruby on rails 具有动态项目数的表单
正在考虑构建订单表单的最佳方法,该表单将(从用户角度):Ruby on rails 具有动态项目数的表单,ruby-on-rails,ruby,validation,dynamic-data,forms,Ruby On Rails,Ruby,Validation,Dynamic Data,Forms,正在考虑构建订单表单的最佳方法,该表单将(从用户角度): 允许添加多个项目 每个项目都有名称、作业类型下拉列表和文件上载 用户可以添加或删除项目 用户必须至少提供一项 应验证所有项目(例如:名称、作业类型和文件是必需的) 当他点击Submit时,应该创建一个包含所有项目的订单 因此该模型看起来像:User-1----*-Order-1----*-OrderItem-*-1-JobType。此外,OrderItem还包括许多属性,比如名称,文件 现在我想要一个尽可能瘦的控制器。使用“标准”
- 允许添加多个项目
- 每个项目都有名称、作业类型下拉列表和文件上载
- 用户可以添加或删除项目
- 用户必须至少提供一项
- 应验证所有项目(例如:名称、作业类型和文件是必需的)
- 当他点击Submit时,应该创建一个包含所有项目的订单
因此该模型看起来像:
User-1----*-Order-1----*-OrderItem-*-1-JobType
。此外,OrderItem还包括许多属性,比如名称
,文件
现在我想要一个尽可能瘦的控制器。使用“标准”代码更好,如:
class OrdersController < ApplicationController
def create
@order = Order.new(params[:order])
if @order.save
redirect_to account_url
else
flash.now[:error] = "Could not save Order"
render :action => "new"
end
end
end
class OrdersController“新建”
结束
结束
结束
最有趣的事情是视图应该是什么样子,这样rails会自动绑定所有发布到正确对象的值
现在我不担心JavaScript的降级,而是担心要添加的项的模板,并将所有这些与验证(可能是部分验证)链接起来
我希望模板与下面的模板类似,但不确定
<input type='text' name='order[order_items[name[]]][]' />
<select name='order[order_items[job_type[]]][]'>...</select>
<input type='file' name='order[order_items[file[]]][]' />
...
我必须克隆此模板,以便使用JS添加项
因此,答案应该是:
- 包括演示以下内容的视图或部分视图:
- 正确绑定post值李>
- 所有项目的正确验证李>
- 包括模型的相关部分
- 仅在必要时才包括对控制器的更改
- (不需要JavaScript)
Dmitry.没有直接回答这个问题,但这里有一些来源可以帮助您做到这一点:
就个人而言。你的问题给人的印象是请某人为你工作。如果我准时的话,我很乐意贴出一个答案来满足你的所有需求 托尼,我很抱歉给人这样的感觉,我希望有人为我做这项工作。我没有这样的打算。我只是想避免对答案的猜测,只想得到清楚的答案。这样的答案是你的。这很清楚,因为它确实提供了我期望的确切答案——铁路广播196(和197)。谢谢。