Странная ошибка с представлением редактирования пользователем - PullRequest
0 голосов
/ 24 марта 2011

Когда я нажимаю на эту ссылку в моем index представлении:

<%= link_to "Edit Password", edit_user_path(current_user) %>

, я получаю эту ошибку:

NoMethodError in Users#edit

Showing /rubyprograms/dreamstill/app/views/videos/_modal.html.erb where line #3 raised:

undefined method `model_name' for NilClass:Class
Extracted source (around line #3):

1: <div id="boxes">
2: <div id="dialog" class="window">
3: <%= form_for(@video) do |f| %>

Это связано с частичным названием _modalчто я отрисовываю в index представлении.В нем есть форма.

У меня также есть это в моем контроллере видео:

def index
  @video = Video.new
  @videos = Video.paginate(:page => params[:page], :per_page => 20)
end

Почему я получаю эту ошибку и как ее исправить?

ОБНОВЛЕНИЕ:

Вот мое действие редактирования в контроллере Users:

def edit
  @user = current_user
end

Вот частичное _modal:

<div id="boxes">
<div id="dialog" class="window">
<%= form_for(@video) do |f| %>
  <% if @video.errors.any? %>
    <div id="errorExplanation">
      <h2><%= pluralize(@video.errors.count, "error") %> prohibited this video from being saved:</h2>

      <ul>
      <% @video.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
  <div class="field">
    <%= f.label :video_url %><br />
    <%= f.text_field :video_url %>
  </div>
  <div class="field">
    <%= f.label :title, 'Song Title' %><br />
    <%= f.text_field :title %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
<%= link_to 'Cancel', '#', :class => 'close' %>
   </div>
   <div id="mask"></div>
</div>

1 Ответ

2 голосов
/ 24 марта 2011

Полагаю, у вас в основном та же проблема, что и в прошлый раз.

Поскольку вы эффективно визуализируете действие edit - независимо от того, находится оно в модальном режиме или нет - вам необходимо снова определить @video.

...