ruby-on-rails - Rails - 防止发布请求从数组创建多行,同时仍保留数据

标签 ruby-on-rails arrays ruby ruby-on-rails-4 hash

我将从我的 Controller 创建操作开始:

def create
    this_order = params[:line_items]
    this_order.each do |this|
        @order = Transaction.new
        @order.shopifyid = params[:id]
        @order.vartitle = this['variant_title']
        @order.save
    end
end

如果您不熟悉 ShopifyAPI,这只是查看订单 JSON 并在我的交易表中创建每个订单的内部行,目前它仅存储订单 ID,然后进入 line_items 数组并获取与其一起存储的变体标题。

它工作正常,但是当然,当我实际上希望它给我一个包含其中所有项目的订单时,这会为订单中的每个项目创建一个新行。

这是将我的表列转换为哈希数组的情况吗?或者我错过了另一种方法来做到这一点?

最佳答案

您可以创建两个具有以下关系的模型 TransactionItem:

交易

has_many :items

项目

belongs_to :transaction

您的 Controller 操作:

def create
    @order = Transaction.new
    @order.shopifyid = params[:id]
    this_order = params[:line_items]
    this_order.each do |this|
        @order.items.new( #Item attributes )
    end
    @order.save
end

我认为通过这种方式,您可以在项目表中包含variant_title

关于ruby-on-rails - Rails - 防止发布请求从数组创建多行,同时仍保留数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40041324/

相关文章:

javascript - 向 Rails 模型提交值

ruby-on-rails - 提高 Rails View 渲染的性能

ruby-on-rails - 使用返回字符串的 Haml 助手

ruby - 注入(inject)方法内部错误

ruby-on-rails - 排除事件关系中的条件,如何?

JavaScript 错误数组创建

javascript - 如何在 JavaScript 中动态获取对象的属性值?

ruby-on-rails - 调试 Cucumber 步骤定义

arrays - ruby 字母数字排序未按预期工作

java - 从 RPN 转换为 Infix 时无法检测 2 位数字