undefined method `to_sym' for nil:NilClass
我仅在我的 nifty_scaffold 的编辑页面中出现此错误。
这是 _form.html.erb
<% form_for @progress do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :date %><br />
<%= f.date_select :date %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description %>
</p>
<p>
<%= f.label :weight %><br />
<%= f.text_field :weight %>
</p>
<p>
<%= f.label :fatpercentage %><br />
<%= f.text_field :fatpercentage %>
</p>
<p>
<%= f.label :height %><br />
<%= f.text_field :height %>
</p>
<p><%= f.submit "Submit" %></p>
<% end %>
这是edit.html.erb
<% title "Edit Progress" %>
<%= render :partial => 'form' %>
这是我的控制器:
class ProgressesController < ApplicationController
def new
@progress = Progress.new
end
def create
@progress = Progress.new(params[:progress])
if @progress.save
flash[:notice] = "Successfully created progress."
redirect_to progresses_url
else
render :action => 'new'
end
end
def edit
@progress = Progress.find(params[:id])
end
def update
@progress = Progress.find(params[:id])
if @progress.update_attributes(params[:progress])
flash[:notice] = "Successfully updated progress."
redirect_to progresses_url
else
render :action => 'edit'
end
end
def index
@progresses = Progress.all
end
end
有什么问题?我似乎找不到我的错误:-S。似乎它: - 正确获取数据 - 无法将 db-values 插入“编辑视图”字段。
我在脚手架中使用 :float、:string 和 :date 作为数据类型。
仅对于已完成的帖子,这是我的错误:NoMethodError in Progresses#edit
Showing app/views/progresses/edit.html.erb where line #3 raised:
undefined method `to_sym' for nil:NilClass
Extracted source (around line #3):
1: <% title "Edit Progress" %>
2:
3: <% form_for @progress do |f| %>
4: <%= f.error_messages %>
5: <p>
6: <%= f.label :date %><br />
在第 6 行,代码日志结束...
编辑:这似乎是我的 routes.rb 中的错误。目前评论如下:
map.edit_progress "edit_progress", :controller => "progresses", :action => "edit"
当我取消注释时,它也会在我的索引视图中出现错误。
出于某种原因,这被称为:' http: //127.0.0.1 :3001/progresses/1/edit ',不应该是:' http: //127.0.0.1 :3001/progresses/edit/ 1'吗?尽管似乎调用了“编辑视图”......在我看来,这也许是没有填写值的原因......
我的解决方案可能是什么?