Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将外键而不是表名id指向rails 3中的“属于”故事中的产品id_Ruby On Rails_Ruby On Rails 3_Class_Foreign Keys - Fatal编程技术网

Ruby on rails 如何将外键而不是表名id指向rails 3中的“属于”故事中的产品id

Ruby on rails 如何将外键而不是表名id指向rails 3中的“属于”故事中的产品id,ruby-on-rails,ruby-on-rails-3,class,foreign-keys,Ruby On Rails,Ruby On Rails 3,Class,Foreign Keys,我有三张桌子 集合、贡献者和产品贡献者 它们的联系如下 收集 有很多:产品贡献者 有很多:贡献者,:通过=>产品贡献者 贡献者 有很多:产品贡献者 拥有多个:集合,:至=>产品贡献者 产品贡献者 属于:收藏 属于:贡献者 我的product_contributor表包含以下列: 身份证件 product_id(如果product_类型为collection,则应在此处映射到collection_id) 产品类型 投稿人id 我有什么办法可以做到这一点吗 我在尝试这样的事情 属于:集合,:外部\u

我有三张桌子 集合、贡献者和产品贡献者

它们的联系如下 收集 有很多:产品贡献者 有很多:贡献者,:通过=>产品贡献者

贡献者 有很多:产品贡献者 拥有多个:集合,:至=>产品贡献者

产品贡献者 属于:收藏 属于:贡献者

我的product_contributor表包含以下列: 身份证件 product_id(如果product_类型为collection,则应在此处映射到collection_id) 产品类型 投稿人id

我有什么办法可以做到这一点吗

我在尝试这样的事情 属于:集合,:外部\u键=>:产品\u id


请告诉我wat可能是解决此问题的合适解决方案…

您可以使用

在product\u contributor中,您应该有:`belient\u to:product,:polymorphic=>true
在collection:has_many:product_contributors中,:as=>:product

我在编辑页面时仍然有问题。上面说"Mysql2::错误:未知列“product\u contributors.track\u id”在“on子句”中:选择
tracks
*从
tracks
内部连接
product\u contributors
track\u id
product\u contributors
贡献者id
='026hboqqTQ'“它仍在寻找track_id,而我有一个product_id…为什么它不将product_id作为track_id或collection_id…每当我尝试加载ProductContributor url时,我都会遇到以下错误:应为/app/models/track.rb定义track。我不明白我在ma track.rb中遗漏了什么,以及“define track”的确切含义。请帮忙。。!!