Rails: Fields_for без области видимости? - PullRequest
0 голосов
/ 06 января 2009

Есть ли способ использовать fields_for в форме, не имея области действия?

Например:

<% fields_for "user[]" do |x|
  <%= x.text_field :name %>
<% end %>

Без загрузки пользовательской модели в память?

У меня все работает, используя территорию [user] [] [name], но я бы хотел оставить ее в ERB.

Ответы [ 2 ]

1 голос
/ 06 января 2009

Я думаю, что ответом будет «нет», поскольку эти form_for и fields_for будут пытаться определить значение по умолчанию из данной заданной переменной экземпляра.

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

0 голосов
/ 06 января 2009

есть ли какая-то конкретная причина, по которой вам нужно использовать форму form_for? Он действительно предназначен для использования с экземпляром объекта модели.

В качестве альтернативы, почему бы вам просто не использовать обычные теги помощников формы. Вы можете определить это следующим образом:

<%form_tag :my_form do %>
 <%= text_field_tag :foo, :bar %>
<%end%>

Вы можете проверить документацию для вида действия, чтобы увидеть, как все это работает.

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