0

我有两个模型项目和任务。每个项目都有许多任务。

项目索引页面上有一个项目列表。

我想,当用户点击项目名称时,项目任务列表显示在项目列表之外

我尝试类似的东西。

应用程序.js

$(document).ready(function(){
  $('#projects').on('click', 'h2', function(){
    $('#tasks').append("<%= escape_javascript render(:file => 'tasks/index.html.erb') %>");
  });
});

将 application.js 文件扩展名更改为 js.erb 是否正确?

更新

我的工作成果 _project.html.erb

<%= link_to " #{project.title} tasks list", project_tasks_path(project), :remote => true %>

task_controller.rb

  def index
@project = Project.find(params[:project_id])    
@tasks = @project.tasks
respond_with @tasks

结尾

index.js.erb

$('#project-tasks').html("<%= j render :file => 'projects/tasks/_tasks', :locals => { :tasks => @tasks }  %>");

_tasks.html.erb

<%= render @tasks %>
4

3 回答 3

0

我认为最好将其保存为 somethingelse.js.erb 而不要更改 application.js

于 2013-03-04T09:17:21.793 回答
0

您不能将应用程序 js 重命名为其他名称。最好制作新的 js.erb 文件并将您的代码放入其中

于 2013-03-04T09:28:29.913 回答
0

您应该使用 rails 方式来执行此操作。使用 ajax 调用并制作 js.erb 文件来更新您的视图。看到这个http://railscasts.com/episodes/205-unobtrusive-javascript

于 2013-03-04T09:45:22.587 回答