我有如下所示的路线:
resources :projects do
resources :tasks
end
它给你一个这样的 URL: URL/projects/14/tasks/3
这些模型定义:
project has_many :tasks
task belongs_to :project
现在,当用户单击任务的链接时,我正在通过远程 => true 链接从项目的显示视图中将任务#show 加载到 div 中。这工作正常。
#tasks/show.js.erb
$('#task_content').html("<%= j render(partial: 'tasks/single', locals: { t: @task }) %>");
#tasks/_single.html.erb
<%= t.content %>
问题是我希望用户能够访问 URL/projects/14/tasks/3 并将任务自动加载到项目视图上的 div 中。
基本上,我需要找到一种方法来URL/projects/14/tasks/3
实际渲染URL/projects/14
,并调用 jquery$('a#task_<%= task.id %>').click()
我似乎无法弄清楚如何让视图识别这种行为。谁能指出我正确的方向?
谢谢!!!
编辑
#TasksController
def show
@task = Task.find(params[:id])
respond_to do |format|
format.js
end
end
#ProjectsController
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html # show.html.erb
end
end
Projects#show 有两个主要元素:
- id 为 task_<%= task.id %> 的链接
- 任务内容应加载到的 div (div#task_content)