Ruby on Rails Dashboard partials

时间:2016-03-12 13:52:35

标签: javascript jquery ruby-on-rails ajax partials

我想创建一个任务-dasboard,但是我遇到了一些问题。

我想要实现的目标:我想在一个页面上显示多个部分,它们会相互回应。当您转到仪表板时,您有两列。第一列显示包含所有任务的列表,第二列显示您在第一列中单击的任务之一的详细信息(或自动列表中最后创建的任务)

图像可视化我想要实现的目标: https://gyazo.com/e87acf214e255817cdb03a22e3a35c4d

此时我的文件如下所示:

application.html.erb

<div class="main-content">
<section id="tasks">
    <div class="wrapper">
      <%= render partial: 'task_lists/index', collection: @task_lists %>
    </div>
</section>

<section id="description">
  <%= render partial: 'task_lists/show', collection: @task_lists %>
</section>

<%= yield %>

<%= render partial: 'task_lists/index', collection: @task_lists %>已经有效,因此每个任务都列在一列中。问题是<%= render partial: 'task_lists/show', collection: @task_lists %>,不起作用。

这是 _show.html.erb ,其中&#39;破坏&#39;部分链接:

<div class="row">
<div class="task_image">
    <img src="../images/phone_img.png"></img>
</div>
<div class="task_heading">
    <h1><%= @task_list.title %></h1>
    <p class="user_info">For <%= @task_list.client_email %></p>
</div>

<div class="task_content">
  <%= render @task_list.task_items %>
</div>

<div class="task_finish">
    <div class="row">
        <p>Finish task</p>
    </div>
</div>

当我运行项目时,Rails说文件 _show.html.erb 中的ID是未分开的。

我的问题: 除非有人点击其他任务,否则如何让Rails自动选择第一个任务?因此,当您进入仪表板时,您会在第一列中看到任务列表,Rails会自动选择第一个任务并在第二列中显示它的详细信息( _show.html.erb )。当您单击第一列中的其他任务时,您将在第二列中看到该任务的详细信息。这可能在Rails中或使用JQUERY / javascript吗?

我希望我的问题很明确,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为你应该只将一个任务传递给show partial而不是列表。你可以做点什么

<%= render partial: "task_list/show", object: @task_list.selected %>

接下来,您需要一种方法来识别活动/选定的任务(例如,实现我刚刚提出的selected方法)。这可能是当用户点击任务时设置的任务属性吗?

另外,看到你的设计,我认为如果你在前端使用javascript / css这样做会更好,但这可能是下一步。

希望这会有所帮助,否则请告诉我!