【发布时间】:2015-09-16 15:41:34
【问题描述】:
我想创建一个索引任务站点,并希望在同一个列表中列出所有任务(模型中的传入称为 execute_tasks,模型中的传出称为assigned_tasks),基于 created_at 混合。使用以下代码,我可以为传入和传出任务创建两个单独的列表,但看起来不太好。我什至不确定是否应该对模型、控制器或视图进行一些更改。
task.rb
belongs_to :assigner, class_name: "User"
belongs_to :executor, class_name: "User"
用户.rb
has_many :assigned_tasks, class_name: "Task", foreign_key: "assigner_id"
has_many :executed_tasks, class_name: "Task", foreign_key: "executor_id"
tasks.controller.rb
def index
@user = current_user
@assigned_tasks = @user.assigned_tasks.order("created_at DESC")
@executed_tasks = @user.executed_tasks.order("created_at DESC")
end
tasks/index.html.erb
<div class= "container">
<div class = "row">
<% @assigned_tasks.each do |task| %>
<% unless task.completed? %>
<%= link_to user_task_path(id: task.id) do %>
<%= task.name %>
<% end %>
<%= task.content %>
<%= task.executor.profile.first_name %>
<% end %>
<% end %>
<br />
<br />
<% @executed_tasks.each do |task| %>
<% unless task.completed? %>
<%= link_to user_task_path(id: task.id) do %>
<%= task.name %>
<% end %>
<%= task.content %>
<%= task.assigner.profile.first_name %>
<% end %>
<% end %>
</div>
</div>
【问题讨论】:
标签: ruby-on-rails database activerecord model-view-controller rails-activerecord