我有一个“任务”模型,其中包含名为“读取”的布尔参数(已读取的任务task.read = true,未读取task.read = false)和int参数“ assigned_to”(已分配的用户ID)任务)。 如果希望将与“ assigned_to”参数匹配的用户标识输入任务,则我希望“读取”为真。
task#show
@task = Task.find(params[:id])
@currentUser = User.find(current_user.id)
currentUserId = @currentUser.id
if @task.assign_to == currentUserId
@taskIsAssignedToUser = true
else
@taskIsAssignedToUser = false
end
if @taskIsAssignedToUser && !@task.isRead?
@task.set_read
end
Task model:
def set_read
if (self.read == false)
self.read = true
self.save
end
end
def isRead?
if self.read?
return true
else
return false
end
end
实际结果: 当与Assigned_to匹配的用户ID进入任务时,read不会更新为true。
答案 0 :(得分:1)
您可以将代码简化为这样
@task = Task.find(params[:id])
if @task.assigned_to == current_user.id
@task.update(read: true)
end
摆脱那些模型方法,它们毫无意义