我的错误未定义方法`to_date'为nil:我的heroku服务器上的NilClass但是一切都在本地工作,我不知道我怎么能解决它
我的助手,我称之为“to_date”
模块BiensHelper
def sell_time(sell_date)
time = Time.now.to_s
time = time.to_date
delai = time - sell_date.to_date
delai.round
end
端
我称之为帮助者的视图
<% @biens.each do |bien| %>
<h3>
<%= bien[:name] %> <br>
<%= bien[:adress] %> <br>
<%= bien[:bien_type] %> <br>
<%= bien[:url] %> <br>
<%= bien[:latitude] %> <br>
<%= bien[:longitude] %> <br>
Vendu il y a <%= sell_time(bien.sell_date) %> jours<br>
<%= link_to "Modifier", edit_bien_path(bien), class: "btn btn-warning" %> <br>
<%= link_to "X", bien_path(bien), method: :delete, class: "btn btn-danger" %> <br>
</h3>
<% end %>
答案 0 :(得分:0)
你在这里收到错误:
delai = time - sell_date.to_date
sell_date对你的记录是零。请检查heorku数据库。从您的控制台运行heroku run rails db
。
或者您可以像heroku run rails console
一样打开rails控制台。
将代码更改为:
def sell_time(sell_date)
time = Time.now.to_s
time = time.to_date
if sell_date.present?
delai = time - sell_date.to_date
delai.round
end
end
如果sell_date为零,则函数会将卖出时间返回到当前时间。但在我看来你应该修复数据库。并将正确的值写入db。
答案 1 :(得分:0)
您的错误显示sell_date
在第delai = time - sell_date.to_date
行
您可以忽略此类错误,例如
def sell_time(sell_date)
if sell_date.present?
delai = Date.today - sell_date.to_date
delai.round
end
end
并且
time = Time.now.to_s
time = time.to_date
您需要Time.now
,然后将其转换为to_date
,而您可以直接使用Date.today
。