Rails 3: Форма внутри цикла? - PullRequest
1 голос
/ 10 января 2012

У меня есть список задач, и я в основном пытаюсь позволить пользователям установить флажок и пометить его как завершенный с помощью ajax, однако у меня есть некоторые реальные проблемы, зная, как указать, что я хочу редактировать «задачи» (в пределах«list») в моем контроллере.

В настоящее время мой цикл показывает все «задачи» для «list».Но когда я пытаюсь добавить в форму свой контрольный список, я получаю сообщение об ошибке:

Couldn't find Task without an ID

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

Вот мой взгляд:

    <% @tasks.each do |task| %> 


<%= form_for task, :remote => true do |f| %>
  <%= f.check_box 'complete', :class => 'submittable' %> 
  <%= f.label :complete %>
<% end %>


<tr><td><h3><%=task.description %></h3></td><%=task.complete%><td></td>
     <td><%= link_to 'Edit Task',edit_list_task_path(@list, task), :id => "edit_#{task.id}",:class=>"btn info" %></td>
     <td><%= link_to 'Delete Task', list_task_path(@list, task), :method => :delete, :confirm => "Are you sure?", :id => "delete_#{task.id}", :class=>"btn danger "%></td></tr>

</tr>

<%end%>

И мой контроллер:

  def index
    @tasks = @list.tasks
    @task = @list.tasks.find()
    @task.update_attributes params[:task]

 end

Обновление:

Произведено изменение в соответствии с комментарием ниже.Любые другие предложения?

Ответы [ 2 ]

1 голос
/ 10 января 2012

Вам нужно

<%= form_for task, :remote => true do |f| %>

вместо

<%= form_for @task, :remote => true do |f| %>

Т.е. заменить @task на task.

Я не знаю, исправит ли это вашепроблема, но, по крайней мере, это видимая опечатка.

0 голосов
/ 05 марта 2014

В контроллере, когда вы говорите .find (), вам нужно передать идентификатор задачи.

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