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应用程序时

警告:不推荐使用常量 ::Fixnum 生成新模型时

Heroku React App 显示数据库的 json 而不是 UI?

heroku 应用程序中新对象的时间戳设置为 heroku 的服务器启动时间,而不是实际的 utcnow 时间