0

我按照http://railscasts.com/episodes/136-jquery-ajax-revised?view=comments 完成了 ajax on Rails 课程。但我完全糊涂了。

在控制器中,它获取两种任务。

controllers/tasks_controller.rb
4:    @incomplete_tasks = Task.where(complete: false)
5:    @complete_tasks = Task.where(complete: true)

并在 index.html.erb 中渲染它

views/tasks/index.html.erb
6:<div class="tasks" id="incomplete_tasks">
7:  <%= render @incomplete_tasks %>
11:<div class="tasks" id="complete_tasks">
12:  <%= render @complete_tasks %>

您也可以通过以下方式附加新任务

views/tasks/create.js.erb
3:$('#incomplete_tasks').append('<%= j render(@task) %>');

但是,没有 _incomplete_task.html.erb 和 _complete_task.html.erb ,所以 rails 怎么知道要渲染什么。

它完全让我感到困惑。求指点,谢谢~

[tasks] $ ls
_form.html.erb* create.js.erb*  index.html.erb* new.js.erb*
_task.html.erb* destroy.js.erb* new.html.erb*   update.js.erb*
4

1 回答 1

0

尝试明确使用部分:

views/tasks/index.html.erb
6:<div class="tasks" id="incomplete_tasks">
7:  <%= render partial: 'task', collection: @incomplete_tasks %>
11:<div class="tasks" id="complete_tasks">
12:  <%= render partial: 'task', collection: @complete_tasks %>

views/tasks/create.js.erb
3:$('#incomplete_tasks').append('<%= j render(partial: 'task', object: @task) %>');
于 2013-09-02T16:27:59.410 回答