gpt4 book ai didi

ruby-on-rails - 具有动态项目数的表单

转载 作者:数据小太阳 更新时间:2023-10-29 07:54:32 26 4
gpt4 key购买 nike

仅考虑构建订单表单的最佳方式(从用户角度):

  • 允许添加多个项目。
  • 每个项目都有名称、工作类型下拉列表和文件上传。
  • 用户可以添加或删除项目。
  • 用户必须至少提供一项。
  • 应验证所有项目(例如:名称、JobType 和文件是必需的)。
  • 当他点击提交时,应该会创建一个包含其中所有项目的订单。

所以模型看起来像:User -1---*-Order-1---*- OrderItem-*--1-JobType。此外,OrderItem 还包括许多属性,比如 namefile


现在我想要尽可能瘦的 Controller 。使用“标准”代码更好,例如:

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

最有趣的事情是 View 应该是什么样子,以便 Rails 自动绑定(bind)发布到正确对象的所有值

现在我不担心 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 添加项目。


所以答案应该是:

  • 包括演示的 View 或 View 的一部分:
    • 正确绑定(bind)帖子值;
    • 正确验证所有项目;
  • 包括模型的相关部分。
  • 如果且仅在必要时包括对 Controller 的更改。
  • (不需要 JavaScript)

理想情况下,如果有人知道(可能在 GitHub 上的某处),我希望看到一个示例。

最后一点,在发布之前检查您的解决方案。

谢谢,
德米特里。

最佳答案

不直接回答问题,但这里有一些资源可以帮助您:

个人笔记。您的问题给人的印象是要求某人为您完成工作。如果我有时间,我很乐意发布一个答案来满足您的所有需求。

关于ruby-on-rails - 具有动态项目数的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com