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 в поля «edit view».
Я использую: float,: string и: date в качестве типов данных в скаффолде.
Просто для завершенного поста, это моя ошибка:
NoMethodError в Прогрессах # 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 журнал кода заканчивается ...
Edit:
Кажется, это ошибка в моем маршрутах.
Это в настоящее время прокомментировано:
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'?
Несмотря на то, что кажется, что «вид редактирования» называется ... Возможно, это причина, по которой значения не заполняются, на мой взгляд ...
Каким может быть мое решение?