Вложенные формы не при использовании модели Активноразмножаться, рельсы 4

у меня проблема с созданием формы для моих моделей ActiveResource, но я не могу найти решение. Проблема в том, что модель не знает полей и выдает ошибку при попытке создать текстовое поле:

undefined method `firstname' for #<User:0x00000002946ec8>

для этого:

<%= form_for(@user) do |f| %>
<div class="field">
   <%= f.label :firstname %><br>
   <%= f.text_field :firstname %>
 </div>

Это мой от моего контроллера:

def new
  @user = User.new
end

Thie-моя модель пользователя:

class User < ActiveResource::Base
  self.site = "https://***.com/api/v1.0/"
end

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

attr_accessor :firstname, :lastname

затем я нашел камень укрепиться (https://rubygems.org/gems/fortify) но последнее обновление было в 2010 году, и установка его не работает...

Я надеюсь, что кто-то знаком с такой проблемой и может помочь мне в правильном направлении.

1 ответов


вы должны использовать .build[1] в вашем контроллере вместо .new[2], как:

@user = User.build

причина в том, что .new без параметров просто создает пустой объект, тогда как .build сначала запрашивает api для каких параметров он должен использовать, особенно для этого usecase (Подробнее см. В этой теме подробности)

Docs:

  1. http://api.rubyonrails.org/v3.2.13/classes/ActiveResource/Base.html#method-c-build

  2. http://api.rubyonrails.org/v3.2.13/classes/ActiveResource/Base.html#method-c-new