首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails预期,got数组

Rails预期,got数组
EN

Stack Overflow用户
提问于 2016-11-15 01:00:03
回答 2查看 977关注 0票数 1

我希望从数组中获得一个id,当它显示在动作中时,添加Order.new

颜色(#70131258622840),got数组(#70131401174240)

有人知道为什么吗?

产品模型

代码语言:javascript
复制
has_many :colorships
has_many :colors, through: :colorships

颜色模型

代码语言:javascript
复制
has_many :colorships
has_many :products, :through => :colorships

乘积控制器

代码语言:javascript
复制
def new
  Product.New
  @dropdown = @product.colors.collect { |co| [co.name, co.id] } 
end

def show
  Product.find(params[:id])
  color = product.colors.select { |i| [i.id] } 
end

def add
  product = Product.find(params[:id])
  if product
    color = product.colors.select { |i| [i.id] } 
    if order.nil? # create new order
      order = Order.new
      order.product = product
      order.color =   color        
    end
  end
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 01:17:03

代码语言:javascript
复制
color = product.colors.select { |i| [i.id] } 

这一行是给你一系列的颜色,而不是颜色。这样就更自然了

代码语言:javascript
复制
color = product.colors.select { |i| i.id } 

但是select也为您提供了一个数组,即使在本例中只有一个元素。find只为您提供您想要的元素或nil

代码语言:javascript
复制
color = product.colors.find { |i| i.id } 
票数 3
EN

Stack Overflow用户

发布于 2016-11-15 06:14:30

就像你说的,你需要一系列的ids。您也可以通过product.colors.ids

这将返回颜色ids数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40600387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档