Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在一周中的特定日期显示WOD_Ruby On Rails_Ruby_Model View Controller - Fatal编程技术网

Ruby on rails 在一周中的特定日期显示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

我正在创建一个应用程序,用户可以看到培训师会告诉他每天做什么训练。此训练将出现在应用程序的主页中

培训师将每周上传wod,我想每天只显示一个wod

我想,如果我给WOD模型一个名为wday的整数属性,那么我可以在WOD.wday==Date.today.cwday的情况下执行逻辑,我就可以实现这一点。这根本不起作用,我的静态页面控制器出现错误

代码如下:

Wod模型:

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