【发布时间】:2014-12-22 23:17:49
【问题描述】:
我在 index.html 中为 nil:NilClass 接收未定义的方法 strftime。由于某种原因,此错误存在于 chrome 和 safari 中,但不存在于 firefox 中。任何帮助,将不胜感激。我的模型、控制器和视图中有以下内容:
user_meetup.rb
def self.request(start_date, start_time, location, description)
transaction do
start_time = [start_date, start_time].join(' ').to_time unless start_time.blank?
meetup1 = UserMeetup.create!(start_time: start_time, location: location, description: description)
meetup2 = UserMeetup.create!(start_time: start_time, location: location, description: description)
end
end
def time
start_time.strftime("%l:%M %P")
end
def date
start_time.strftime("%B %e, %Y")
end
user_meetups_controller.rb:
class UserMeetupsController < ApplicationController
before_filter :authenticate_user!
respond_to :html, :js
def index
@user_meetups = current_user.user_meetups
end
在我看来,我有以下几点,meetup.date 和 meetup.time 是我得到 NoMethodError: undefined method strftime for nil:NilClass:
<% if current_user.user_meetups.each do |meetup| %>
<% if meetup.accepted? %>
<div class="accepted">
<span class="start-date">scheduled for <%= meetup.date %> at <%= meetup.time %> at <%= meetup.location %></span>
【问题讨论】:
-
看起来你的聚会没有开始时间?
-
你说
meetup.date和meetup.time在 chrome 和 safari 中工作,但在 Firefox 中不工作..我不明白..数据是由 Rails 服务器上的 erb 模板引擎和纯 HTML 呈现的发送到浏览器,浏览器将 html 绘制到它的窗口。这意味着发送到 chrome 和 safari 的 HTML 将与发送到 firefox 的标记相同。简而言之,浏览器不处理 erb 模板。
标签: ruby-on-rails ruby