Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 Rails在不使用id的情况下有很多关系_Ruby_Ruby On Rails 4_Rails Activerecord - Fatal编程技术网

Ruby Rails在不使用id的情况下有很多关系

Ruby Rails在不使用id的情况下有很多关系,ruby,ruby-on-rails-4,rails-activerecord,Ruby,Ruby On Rails 4,Rails Activerecord,在学习Hartl的教程时,我被要求做一个项目。我觉得这是一个偏离正道的好机会,尽管我知道的还不够多;)所以我有一些问题 我有两种型号: Foo,它有参数名,有许多FooStatus FooStatus,具有参数Foo.name和content,属于Foo Hartl的教程使用您登录的帐户,因此,@foo参数已绑定,foo.id将随时可用。经过身份验证后,用户可以为任何Foo创建状态。在我的HTTP请求中,我试图发送foo.name和foostatus.content并将这些信息保存到我的数据库中

在学习Hartl的教程时,我被要求做一个项目。我觉得这是一个偏离正道的好机会,尽管我知道的还不够多;)所以我有一些问题

我有两种型号:

Foo
,它有参数名,
有许多FooStatus

FooStatus
,具有参数Foo.name和content,属于Foo

Hartl的教程使用您登录的帐户,因此,
@foo
参数已绑定,
foo.id
将随时可用。经过身份验证后,用户可以为任何
Foo
创建状态。在我的HTTP请求中,我试图发送
foo.name
foostatus.content
并将这些信息保存到我的数据库中

我的问题是: 这些模型是否会在数据库中存储两个对象之间的适当关系/链接

告诉我错误

SQLite3::SQLException: no such column: foostatus.foo_id: SELECT  1 AS one FROM "foostatus"  WHERE "foostatus"."foo_id" = ?  ORDER BY created_at DESC LIMIT 1
因此,我假设
.any?
方法正在查找
foostatus.foo\u id
,我不将其存储在我的表中

我原本以为我可以说

foo = Foo.find_by_name(params[:name]) 
@foostatus = foo.foostatus.build(params[:content])

但是阅读强参数让我陷入了困境,因为这是不允许的。

您可以指定哪些列将用作关联的外键和主键:

class Foo < ActiveRecord::Base
  has_many :foo_statuses, foreign_key: :foo_name, primary_key: :name
end

class FooStatus < ActiveReocrd::Base
  belongs_to :foo, foreign_key: :foo_name, primary_key: :name
end
class Foo
我花了一分钟才意识到我错过了foo_name前面的冒号,但我明白了!)非常感谢好先生!