int main( void )
{
func1( 1 );
func2( func1, func1(2) );
}
模型产品
has_many :colorships
has_many :products, :through => :colorships
在产品控制器上,我想选择一种颜色
has_many :colorships
has_many :colors, through: :colorships
答案 0 :(得分:0)
问题是你使用的是has_many,它总会返回一个数组。你做错了一些事。
不要product.color_ids.nil?
,因为它永远不会是零,你想要product.colors.empty?
,因为空数组不是零,它是空的。
此行current_user.find_by_color_id(product.color_ids.nil? ? nil : product.color_ids.color.id)
永远不会有效。 current_user
是获取current_user对象的Devise方法,因此向其添加find会引发错误。
同样product.color_ids.color.id
也无法正常工作。我不确定你在这里尝试做什么,但product.colors
和product.color_ids
都将返回一个数组。如果您想要第一个ID,则可以product.colors.first.id
或product.color_ids.first
。
看起来你离家很远,对不起。我很乐意提供更多帮助,但我需要更多信息,我需要用户模型并了解您尝试使用current_user.find_by_color_id(product.color_ids.nil? ? nil : product.color_ids.color.id)
进行的操作。