Ruby on rails 在一周中的特定日期显示WOD
我正在创建一个应用程序,用户可以看到培训师会告诉他每天做什么训练。此训练将出现在应用程序的主页中 培训师将每周上传wod,我想每天只显示一个wod 我想,如果我给WOD模型一个名为wday的整数属性,那么我可以在WOD.wday==Date.today.cwday的情况下执行逻辑,我就可以实现这一点。这根本不起作用,我的静态页面控制器出现错误 代码如下: Wod模型:Ruby on rails 在一周中的特定日期显示WOD,ruby-on-rails,ruby,model-view-controller,Ruby On Rails,Ruby,Model View Controller,我正在创建一个应用程序,用户可以看到培训师会告诉他每天做什么训练。此训练将出现在应用程序的主页中 培训师将每周上传wod,我想每天只显示一个wod 我想,如果我给WOD模型一个名为wday的整数属性,那么我可以在WOD.wday==Date.today.cwday的情况下执行逻辑,我就可以实现这一点。这根本不起作用,我的静态页面控制器出现错误 代码如下: Wod模型: class Wod < ApplicationRecord belongs_to :user def this_da
class Wod < ApplicationRecord
belongs_to :user
def this_day
Date.today.cwday == self.wday
end
end
class-Wod
用户模型:
class User < ApplicationRecord
has_many :wods
def feed
Wod.this_day
end
class用户
静态页面控制器:
class StaticPagesController < ApplicationController
def home
if logged_in?
@wod = current_user.wods.build
@feed_items = current_user.feed
end
end
def contact
end
def about
end
end
class StaticPagesController
我收到以下错误:
StaticPagesController#home undefined方法中的命名错误
`这是你的意思吗?第三
我想知道如何做到这一点,任何帮助将不胜感激
顺便说一句:如果我在用户模型Wod中这样做的话,效果会很好,但是我不想要这个
StaticPagesController#home undefined方法中的命名错误
`今天是你的生日#
问题就在这一天。如果您想在WOD
上调用,则需要将其添加为类
方法
改变
def this_day
Date.today.cwday == self.wday
end
到
另一种解决方案是使用范围
class Wod < ApplicationRecord
belongs_to :user
scope :this_day, -> { where(wday: Date.today.cwday) }
end
class-Wod{where(wday:Date.today.cwday)}
终止
我通过将当天的方法更改为:
def self.this_day
where("wday = ?", Date.today.cwday)
end
现在它给了我这个错误:StaticPagesController中的NoMethodError#home undefined method'wday'@Cesar您在wods
表中有wday
列吗?尝试执行Wod.column_names
并将结果粘贴到此处irb(main):020:0>Wod.column_names=>[“id”、“warmup”、“中间”、“content”、“user_id”、“created_at”、“updated_at”、“wday”]StaticPagesController中的nomethoder错误,用于提取的源代码(第5行附近):def self.this_day Date.today.cwday==self.wday end endget!更改了def self的方法。今天,imma更新了answetI,我添加了一个您可能感兴趣的替代解决方案:)
def self.this_day
where("wday = ?", Date.today.cwday)
end