Ruby on rails 用“显示用户”;“最完整”;在使用Rails计数器缓存的视图中
我正在构建我的第一个RoR应用程序,它涉及任务分配。用户可以创建工作分配,向这些工作分配中添加任务,还可以将工作分配标记为完成。我有一个“成就”页面,显示一个具有“完成最多”任务的特征用户(完成5项以上任务的用户)。我的问题在于,用户不会随着完成的工作分配计数而改变。目前我只有2个用户。用户1已完成8项作业,用户2已完成7项作业。User2显示为“完成任务最多的特色用户” 我的代码如下: 分配控制器Ruby on rails 用“显示用户”;“最完整”;在使用Rails计数器缓存的视图中,ruby-on-rails,Ruby On Rails,我正在构建我的第一个RoR应用程序,它涉及任务分配。用户可以创建工作分配,向这些工作分配中添加任务,还可以将工作分配标记为完成。我有一个“成就”页面,显示一个具有“完成最多”任务的特征用户(完成5项以上任务的用户)。我的问题在于,用户不会随着完成的工作分配计数而改变。目前我只有2个用户。用户1已完成8项作业,用户2已完成7项作业。User2显示为“完成任务最多的特色用户” 我的代码如下: 分配控制器 class AssignmentsController < ApplicationCont
class AssignmentsController < ApplicationController
before_action :authenticate_user!, except: [:index, :show]
before_action :set_assignment, only: [:show, :edit, :update,
:destroy]
#GET/ASSIGNMENTS
def index
user = User.find params[:user_id]
@incomplete_assignments = user.assignments.incomplete
@complete_assignments = user.assignments.complete
end#index
def new
@assignment = current_user.assignments.build
@assignment.tasks.build
end#new
#POST
def create
@assignment = current_user.assignments.build(assignment_params)
if @assignment.save
redirect_to [current_user, @assignment], notice: "Assignment was created successfully!"
else
render :new
end
end #create
def show
#@user = current_user.assignments
@task = Task.new
end#show
#PATCH
def edit
end
def update
@assignment.update(assignment_params)
redirect_to [current_user, @assignment], notice: "Assignment updated successfully!"
end#update
#DELETE
def destroy
@assignment.destroy
redirect_to [current_user, @assignment], notice: "Assignment was deleted successfully!"
end #destroy
def completed
Assignment.where(id: params[:assignment_ids]).update_all(status: true)
redirect_to user_assignments_path(current_user.id)
end#completed
private
#STRONG PARAMS
def set_assignment
@assignment = Assignment.find(params[:id])
end
def assignment_params
params.require(:assignment).permit(:name, :due_date, task_attributes: [:name])
end
end#class
类分配控制器
用户控制器
class UsersController < ApplicationController
before_action :authenticate_user!
def show
@user = User.find(params[:id])
@assignment = Assignment.new
redirect_to user_path(@user)
end
def show_completed
@users = User.all
end
end
class UsersController
我对成就的看法
<h3> Status of who has done what</h3>
<br>
<% for user in @users %>
<%= user.email %> has completed <%= user.assignments.count %> assignments. <br>
<% end %>
<% if user.assignments.complete.count > 5 %>
<h1> **Featured User** </h1>
<h2><%= user.email %> has completed the most assignments!</h2>
<% else %>
<p> Not enough completed Assignments to be featured!</p>
<% end %>
<%= link_to 'Back to your asssignments', user_assignments_path(current_user, @assignment) %>
谁做了什么的状态
已完成作业
5 %>
**特色用户**
完成的作业最多!
完成的作业不足,无法突出显示
这可能是对如何正确使用的误解。在方法中计数,或者像我认为的那样简单,我说显示分配大于5的用户。我的应用程序正在这样做。看起来您关闭了
@users
的for
循环,第二个用户变量来自哪里?行5%>
中的一个,是哪个用户填充该变量?既然没有循环,有没有可能只是选择了第一个循环,看起来没有循环?@RockwellRice,你知道,老实说,我甚至没有注意到这一点。当变量来自何处或如何工作时,你的猜测和我的一样好。我在运行应用程序时从未出错,所以我认为一切正常。当我删除它时,它会关闭初始循环,它会将两个用户都显示为特征用户,我试图找到一种方法,只显示计数最高的用户。我不认为这会像我希望的那样简单。