Ошибка с формой ActiveResource и Rails

Я использую ActiveResource 4.0 для сопоставления API RESTFull с классами моделей в моем приложении Rails 4. Я получаю сообщение об ошибке "undefined method 'model_name' for SimpleDelegator:Class" только при попытке редактирования объекта.

Похоже, что объекты, загруженные потомками ActiveResource, вместо этого были созданы как потомки SimpleDelegator, которые не могут реагировать на метод model_name.

Я немного почитал код ActiveResource, но не мог понять, почему это происходит. Кто-нибудь натыкался на что-то подобное?

Моя модель:

class Database < ActiveResource::Base
  self.size = "api.endpoint"
end

И в моем контроллере (фрагмент)

def new
  @database = Database.new
end

def edit
  @database = Database.find(params[:id])
  if !@database
    redirect_to databases_path
  end
end 

В моих представлениях формы (фрагмент):

<%= form_for @database do |d| %>

  <%= d.label :dbname %> <!-- error reported on this line -->
  <%= @database.dbname %>

  <%= d.label :description %>
  <%= @database.description %>

<% end %>

person Fernando Allen    schedule 19.09.2013    source источник
comment
если у кого-то есть эта проблема, обновите activeresource-response до 1.0.1   -  person Fivell    schedule 01.10.2013


Ответы (1)


Хорошо, я нашел проблему. Я также использую гем activeresource-response для получения параметров разбивки на страницы, отправляемых с заголовками HTTP.

Как видно здесь этот драгоценный камень использует SimpleDelegator для переноса ответа после выполнения метода find, чтобы «захватить» полное htt_response соединения ActiveResource.

Я попытаюсь исправить это в драгоценном камне или использовать другое решение, но я думаю, что этот ответ может помочь кому-то еще.

person Fernando Allen    schedule 20.09.2013
comment
было бы здорово, если бы вы предоставили неудачный тестовый пример. - person Fivell; 23.09.2013
comment
Работал с @fivell, чтобы решить эту проблему в геме activeresource-response. Спасибо за быстрый отзыв. - person Fernando Allen; 01.10.2013