Heroku记录了一个fixnum而不是一个字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Heroku记录了一个fixnum而不是一个字符串相关的知识,希望对你有一定的参考价值。
本地它按预期记录一个字符串,在Heroku上记录一个fixnum ...
用户可以创建愿望并选择他想要观看音乐会的区域。如果音乐会符合他的愿望,则收到电子邮件。
我有一个哈希存储在我的application_helper.rb
作为常量
DEPARTMENTS = {
"01" => "Ain",
"02" => "Aisne",
"03" => "Allier"
#........
}
我在wanted_concerts_controller.rb
中的创建方法看起来像这样
def create
@wanted_concert = WantedConcert.new(wanted_concerts_params)
@wanted_concert.user_id = current_user.id
if @wanted_concert.save!
redirect_to wanted_concerts_path, notice: "Ton souhait est bien enregistré"
else
render :new , alert: "Oups recommence!"
end
end
private
def wanted_concerts_params
params.require(:wanted_concert).permit(:department, :user_id)
end
在the new.html.erb
档案中,我可以实现我的愿望
<%= simple_form_for(@wanted_concert) do |f| %>
<%= f.input :department, prompt: "Choisi une région", label: false, collection: ApplicationHelper::DEPARTMENTS.map { |k, v| v } %>
<%= f.submit "Valider", class: "btn btn-success" %>
<% end %>
这是我的index.html.erb
,其中显示了愿望
<li> <%= wanted.department %> <%= link_to "Supprimer", wanted_concert_path(wanted), method: :delete %></li>
<% end %>
所以在本地如果我选择例如Ain索引显示Ain
在Heroku上如果选择Ain则显示0
所以在Heroku控制台上我做了:
irb(main):004:0> c = WantedConcert.last
D, [2018-03-04T13:31:54.314672 #4] DEBUG -- : WantedConcert Load (1.3ms) SELECT "wanted_concerts".* FROM "wanted_concerts" ORDER BY "wanted_concerts"."id" DESC LIMIT $1 [["LIMIT", 1]]
=> #<WantedConcert id: 21, department: 0, user_id: 1, created_at: "2018-03-04 13:02:16", updated_at: "2018-03-04 13:02:16">
irb(main):005:0> c.department.class
=> Integer
irb(main):006:0>
答案
我找到了帮助。我犯了一个顽皮的错误,我在一个旧的迁移中重命名了一个字段,而不是在一个新的重命名....所以这可能有助于某人面临一个熟悉的错误......
以上是关于Heroku记录了一个fixnum而不是一个字符串的主要内容,如果未能解决你的问题,请参考以下文章
Heroku + MEAN 堆栈错误:参数“url”必须是字符串,而不是未定义
Heroku 记录错误是 Mongoose 错误 uri 参数到 openURI() 必须是一个字符串,它是一个字符串
“TypeError:参数“url”必须是字符串,而不是未定义“在本地运行heroku应用程序时