ошибка NoMethodError (неопределенный метод `+ 'для ActiveRecord :: Associates :: BelongsToAssociation: 0xb6c9b45c) - PullRequest
0 голосов
/ 22 сентября 2011

Я использую Rails 2.3.11. У меня 2 таблицы клиентов и сообщений:

# Table name: customers
#  id                 :integer(4)      not null, primary key
#  Name               ::string(255)     default("Anonymous")
...

class Customer < ActiveRecord::Base
  has_many :posts
...

# Table name: posts
#  id                   :integer(4)      not null, primary key
#  customer_id          :integer(4)
...

class Post < ActiveRecord::Base
  belongs_to :customer
...

В моем posts_controller я хотел вернуть XML-ответ для вызова GET с соответствующей записью и информацией о клиенте.

@customer = Customer Details
@posting = Corresponding Post

Следующая строка выдает ошибку NoMethodError (undefined method '+' for ActiveRecord::Associations::BelongsToAssociation:0xb6c9b45c):

respond_to do |format|
  format.xml  { render :xml => (@customer + @posting)}

Это выглядит очень тривиальной проблемой, и мне здесь не хватает некоторых основ. Может ли кто-нибудь помочь мне понять эту ошибку.

1 Ответ

0 голосов
/ 22 сентября 2011

Похоже, вам нужно это:

format.xml  { render :xml => @posting.to_xml(:include => :customer) }

Если вы хотите, чтобы сообщения, созданные клиентом, вы использовали:

format.xml  { render :xml => @customer.to_xml(:include => :posts) }

Просто к сведению ... Я бы назвал версию вашего объекта в единственном числе такой же .. Так что объект Post будет @post :) 100 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...