Частичное представление Rails устанавливает значение поля формы - PullRequest
2 голосов
/ 19 ноября 2010

Хорошо, я новичок в Rails и безуспешно пытаюсь сделать следующее:

У меня есть объект (из моей активной записи), содержащий проект, который содержит n подпроектов, которые содержатn задач.Теперь для каждого из них я хочу частичное представление.

Таким образом, я рендерим из представления проекта подпроект со следующим кодом:

<%= render(:partial => 'subproject', :collection =>  @project.sub_projects) %>

Внутри моего подпроекта частичное представление называется_subproject.rhtml (добавление кода в хороший старый проект Rails 1.2.3), поэтому я могу получить доступ к данным следующим образом:

<%= subproject.name %>

Это выведет имя правильно, но когда я попытаюсь сгенерироватьtextfield это не будет работать:

<%= text_field 'subproject', 'name' %>

Но это будет:

<%= text_field 'subproject', 'name', :value => subproject.name %>

Что я делаю не так?


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


Edit2: в соответствии с запросом, мой код контроллера:

@project = Project.find(params[:id])

1 Ответ

3 голосов
/ 19 ноября 2010

Вы можете написать это:

<%= render(:partial => 'subproject', :collection =>  @project.sub_projects) %>

как

<%= render :partial => @project.sub_projects %>

Это будет отображать каждый подпроект с частичной sub_projects/_sub_project.html.erb.Небольшой ярлык.

This:

<%= text_field 'subproject', 'name' %>

Говорит, создает текстовое поле с именем: subproject [name], но не дает ему значение.Вам нужно передать значение, которое вы хотите установить (код, который работает).

Более идиотский способ сделать это теперь с form_for:

<% form_for @subproject do |f| %> 
  <%= f.text_field :name %>
<% end %>

Или, если вы используетеformtastic (https://github.com/justinfrench/formtastic),, что фантастично, вы бы написали:

<% semantic_form_for @subproject do |f| %> 
    <%= f.input :name %>
<% end %> 

Надеюсь, это поможет!

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