Ruby on rails 设置的初始id在创建时有一个关联

Ruby on rails 设置的初始id在创建时有一个关联,ruby-on-rails,Ruby On Rails,第一次尝试Rails关联时,我无法使以下代码正常工作。我的目标是将报告状态初始设置为记录id 1。状态表中的记录1为“打开”。稍后我会将其更改为2,使其处于“关闭”状态 模型设置如下: class Report < ActiveRecord::Base has_one :status end class Status < ActiveRecord::Base belongs_to :reports end 我知道问题出在@报告上。创建状态(1),但我无法在互联网站上找到任

第一次尝试Rails关联时,我无法使以下代码正常工作。我的目标是将报告状态初始设置为记录id 1。状态表中的记录1为“打开”。稍后我会将其更改为2,使其处于“关闭”状态

模型设置如下:

class Report < ActiveRecord::Base
  has_one :status
end

class Status < ActiveRecord::Base
  belongs_to :reports
end
我知道问题出在
@报告上。创建状态(1)
,但我无法在互联网站上找到任何清晰的信息。很明显,我找的地方不对

此外,my routes.rb的配置如下,但我不确定这是否是最正确的方式

  resources :reports do
    resources :comments
    resource :status
  end
UandI的回答纠正了我的问题。关于信息,我不知道我是如何配置我的has_-one和belown_-to-associations的。我把它们颠倒过来了,在我的情况下应该是这样的

class Report < ActiveRecord::Base
  belongs_to :status
end

class Status < ActiveRecord::Base
  has_one :reports
end
类报告
假设您要分配的状态为“打开”,其列名为
列名

替换以下行:

@report.create_status(1)
用这个

@report.status = Status.find_by_column_name('OPEN')
在上面的行中,将
列的名称
替换为状态列的名称
OPEN

例如,如果列的名称为status\u name,则该行将变为
@report.status=status.find\u by\u status\u name('OPEN')

@report.status = Status.find_by_column_name('OPEN')