我写了一个控制器
class NotificationsController < ApplicationController
before_filter :authenticate_user!
def index
@notification = current_user.notification
if @notification.unread == 0
redirect_to root_path
else
@notification.unread == 0
@notification.save
end
end
end
我希望显示索引页面之后@notification.unread
为0。但它实际上无法正常工作。
如何更改这些代码以使其正常工作。
希望你能帮助我,非常感谢:)
答案 0 :(得分:2)
尝试使用@notification.unread = 0
代替@notification.unread == 0
答案 1 :(得分:2)
我不确定我是否完全明白你要做什么,但是你正在调用==两次,这是一个比较运算符,我想在第二部分你要设置值,所以你应该use = only
喜欢这个
class NotificationsController < ApplicationController
before_filter :authenticate_user!
def index
@notification = current_user.notification
if @notification.unread == 0
redirect_to root_path
else
@notification.unread = 0
@notification.save
end
end
end
答案 2 :(得分:0)
else
@notification.unread = 0
@notification.save
end
@ notification.unread == 0不会更改属性值。 :)
答案 3 :(得分:0)
将业务逻辑移动到模型总是一个好主意,因此您可以将其写为
class Notification < ActiveRecord::Base
def unread?
unread == 0
end
end
class NotificationsController < ApplicationController
before_filter :authenticate_user!
def index
@notification = current_user.notification
@notification.unread? ? (@notification.update_attributes("unread", 0) : (redirect_to root_path))
end
end