У отношения есть ошибка атрибута - PullRequest
0 голосов
/ 31 августа 2011

Почему атрибуты классов отношений не являются атрибутами?

$ rs = ResourceServer.new
 => #<ResourceServer id: nil, resource_id: nil, server_id: nil, created_at: nil, updated_at: nil> 

$ rs = ResourceServer.attributes = {:server_id => 1, :resource_id => 1}
 NoMethodError: undefined method `attributes=' for #<Class:0x00000003384728>

Модель:

class ResourceServer < ActiveRecord::Base
  belongs_to :server
  belongs_to :resource

  # Validations
...
end

Ответы [ 2 ]

3 голосов
/ 31 августа 2011

Это потому, что вы вызываете метод экземпляра #attributes= для класса ResourceServer, а не для объекта rs.

То, что вы хотите сделать, это:

rs.attributes = {:server_id => 1, :resource_id => 1}

И это будет работать! :)

0 голосов
/ 31 августа 2011

ResourceServer - это класс, вам нужен экземпляр этого класса, чтобы назначить ему атрибуты. Например, вы можете сделать:

rs = ResourceServer.new
rs.attributes = {:server_id => 1, :resource_id => 1}
...