【问题标题】:How can I fix this error I get on Heroku?如何解决我在 Heroku 上遇到的这个错误?
【发布时间】:2012-07-11 17:32:11
【问题描述】:

当我打开一个在 heroku 上构建的应用程序时,我在进入注册页面时收到一个应用程序错误。我进入了我的 heroku 日志,发现了这个错误消息:

在 6 毫秒内完成 500 内部服务器错误在布局/应用程序中呈现 users/new.html.erb (5.5 毫秒) ActionView::Template::Error(未定义的方法 `time_zone' for #):

这是我对创建新用户的看法:

<div class="row">
<div class="span6 offset4">
    <%= form_for(@user) do |f| %>

        <%= render 'shared/error_messages' %>

        <%= f.label :name %>
        <%= f.text_field :name %>

        <%= f.label :email %>
        <%= f.text_field :email %>

        <%= f.label :phone_number, "Your cell phone number" %>
        <%= f.text_field :phone_number %>

        <%= f.label :password %>
        <%= f.password_field :password %>

        <%= f.label :password_confirmation, "Password confirmation" %>
        <%= f.password_field :password_confirmation %>

        <%= f.label :time_zone, "Choose your time zone" %>
        <%= f.select :time_zone, [['Eastern'], ['Central'], ['Mountain'], ['Pacific']] %><br>

    <%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
    <% end %>

什么可能导致此错误,我该如何解决?非常感谢!

  def create
@user = User.new(params[:user])
if @user.save
 sign_in @user
  flash[:success] = "Welcome to app!"
 redirect_to info_path
else
  render 'new'
end

结束

定义新 @user = User.new 结束

【问题讨论】:

  • @usertime_zone 属性吗?
  • 是的。在我的用户模型中,我有以下代码: attr_accessible :time_zone
  • attr_accessible :time_zone 不是:time_zone 的属性定义。你能在 shell 中打开 rails console 并运行 u = User.new; u.time_zone 而不会出错吗?这假设在您看来 @user 是名为 User 的模型的实例。
  • 在 Rails 控制台中运行那段代码时,我没有收到错误消息。我得到的只是零。
  • 好的,我现在就从我的用户控制器中添加创建操作。

标签: ruby-on-rails heroku


【解决方案1】:

确保在推送到 heroku 后迁移数据库

heroku run rake db:migrate

【讨论】:

    【解决方案2】:

    heroku 有日志,就像你在开发中的 rails 服务器一样,你可以运行 heroku 日志并跟踪它。这应该可以让您深入了解导致错误的行和操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-13
      • 2021-02-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2012-07-09
      相关资源
      最近更新 更多