Ruby on rails chrome&safari中nil:NilClass的未定义方法'strftime',但不是firefox
我正在index.html中为nil:NilClass接收未定义的方法strftime。由于某些原因,这个错误存在于chrome和safari中,但不存在于firefox中。任何帮助都将不胜感激。我的模型、控制器和视图中有以下内容: 用户_meetup.rbRuby on rails chrome&safari中nil:NilClass的未定义方法'strftime',但不是firefox,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在index.html中为nil:NilClass接收未定义的方法strftime。由于某些原因,这个错误存在于chrome和safari中,但不存在于firefox中。任何帮助都将不胜感激。我的模型、控制器和视图中有以下内容: 用户_meetup.rb def self.request(start_date, start_time, location, description) transaction do start_time = [start_dat
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
您需要在视图代码中使用@user_meetups来访问这些数据,Rails始终将实例变量从控制器传递到视图
保重 下面这行是错误的
def self.request(start_date,...) do
start_time = [start_date, start_time].join(' ').to_time unless start_time.blank? # <= This line
...
end
当开始时间为零或时,将不会分配该时间
由于变量start_time为空,您可能正在查找:
开始时间=[开始日期,开始时间]。将“”加入到开始时间
通常,我会避免使用此处使用的属性名称[开始日期,…]对于用作start_date=的局部变量,meetup列表是通过current_user(即current_user.user_meetup)访问的,因此这不是问题所在。也不知道这是否有帮助,但meetup.date和meetup.time在firefox中有效,但在chrome或Safari中无效。看起来你有一个没有开始时间的meetup?你说了meetup.date和meetup.timemeetup.time在chrome和safari中工作,但在firefox中不工作。我不明白。数据由rails服务器上的erb模板引擎呈现,纯HTML发送到浏览器,浏览器将HTML绘制到其窗口。这意味着发送到chrome和safari的HTML将是发送到firefox的相同标记。简言之,浏览器不处理erb模板。
def self.request(start_date,...) do
start_time = [start_date, start_time].join(' ').to_time unless start_time.blank? # <= This line
...
end