【发布时间】: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 结束
【问题讨论】:
-
@user有time_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