Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 在我的日历中显示指向数据库中记录的链接_Ruby On Rails_Ruby_Database_View_Iteration - Fatal编程技术网

Ruby on rails 在我的日历中显示指向数据库中记录的链接

Ruby on rails 在我的日历中显示指向数据库中记录的链接,ruby-on-rails,ruby,database,view,iteration,Ruby On Rails,Ruby,Database,View,Iteration,我正在向我的应用程序添加日历功能,目前在获取我知道存在的记录以显示在我的视图中时遇到问题 这是我的控制器: class CalendarController < ApplicationController def index end def show @date = params[:date] ? Date.parse(params[:date]) : Date.today @service_records_by_date = ServiceRecord.a

我正在向我的应用程序添加日历功能,目前在获取我知道存在的记录以显示在我的视图中时遇到问题

这是我的控制器:

class CalendarController < ApplicationController
  def index
  end

  def show
    @date = params[:date] ? Date.parse(params[:date]) : Date.today 
    @service_records_by_date = ServiceRecord.all
  end
end
class CalendarController
这是我的观点:

<center><h1>Calendar</h1></center>


<div class="row">
  <div class="col-md-12 text-center">
    <div class="well controls">
      <%= link_to calendar_path(date: @date - 1.month), class: "btn btn-default" do %>
        <i class="glyphicon glyphicon-backward"></i>
      <% end %>
      <%= "#{@date.strftime("%B")} #{@date.year}" %>
      <%= link_to calendar_path(date: @date + 1.month), class: "btn btn-default" do %>
        <i class="glyphicon glyphicon-forward"></i>
      <% end %>
    </div>
  </div>
</div>
<div class="row">
  <div class="col-md-12">
    <%= calendar @date do |date| %>
      <%= date.day %>

    <% @service_records_by_date.each do |record| %> 
     <% if record.created_at == date %> 
    <li><%= link_to(record.store_name, record) %></li> 
   <% end %>
    <% end %> 
</ul> 
<% end %>

  </div>
</div>
日历

  • 日历似乎显示得很好,但没有记录填充,尽管数据库中存在许多记录。任何想法都将不胜感激

    在评论中与您交谈后,我们发现问题在于您的条件:

    <% if record.created_at == date %> 
        <li><%= link_to(record.store_name, record) %></li> 
    
    
    
  • 处创建的记录可能是unix时间戳

    date
    也可以是unix时间戳,但在本例中,它是日期的字符串表示形式(出现问题的地方)

    我认为,即使它是unix时间戳而不是字符串,您仍然很难比较两者,因为除非它们是完全相同的秒,否则您将无法成功地比较两者。在比较之前,我会将两者转换为通用格式

    我认为ruby的date对象可能有助于:


    很难说根本问题是什么,您是否尝试过在控制器中为不同的变量设置
    put
    ?我还想知道您的条件
    if record.created_at==date
    是否出于某种原因返回false。为什么不拿出条件,只显示
    日期
    记录。在
    处创建以查看它们是否一致?可能是您在创建的
    记录存储在unix时间,而您的
    日期
    可能采用不同的格式,这意味着条件将返回false。这很有意义,我将尝试一下。关于我的模型的信息会让你更容易看到发生了什么吗?谢谢。我想在写下我的回答后,我对可能出现的问题有了更好的了解,我要检查的第一件事是在该条件下比较的两件事。嘿,Matthew,我放置了这些变量,发现@date返回的是日期字符串,而不是日期/时间对象。谢谢你帮我弄明白!不知道如何在两者之间来回转换,但你给了我一个尝试的方向!另外,即使
    date
    是一个unix时间戳,您如何将该值与
    记录进行比较?如果该时间戳甚至是一秒钟,那么该日期的时间将不会返回true。