Не можете найти шаблон представления в Rails? - PullRequest
0 голосов
/ 25 ноября 2010

Это мой users_controller.rb код:

  ...
  def edit
    @user = @current_user
  end

  def update
    @user = @current_user # makes our views "cleaner" and more consistent
    if @user.update_attributes(params[:user])
      flash[:notice] = "Account settings updated."
      redirect_back_or_default account_url
    else
      render :action => 'edit'
    end
  end
  ...

У меня есть следующие представления / пользователи:

  1. new.html.erb
  2. пароль.html.erb
  3. profile.html.erb
  4. show.html.erb

Каждый раз, когда я пытаюсь обновить настройки своей учетной записи пользователя, появляется следующее:

ActionView::MissingTemplate (Missing template users/edit.erb in view path app/views:vendor/plugins/admin_data/app/views):
  app/controllers/users_controller.rb:46:in `update'

Не вина admin_data в том, что вам любопытно.Это контроллер.Что я сделал не так?Спасибо.

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Во-первых, если вы хотите, чтобы действие обновления вернулось к: show, вы должны изменить

render :action => 'edit'

до

render :action => 'show'

в противном случае он, конечно, будет искать edit.html.erb или edit.erb

Во-вторых, если вы используете 'show', чтобы позволить пользователю редактировать его / ее информацию, почему у вас фактически есть действие: edit в вашем контроллере? Если вы не используете его, вам, вероятно, следует удалить следующее:

def edit
  @user = @current_user
end
2 голосов
/ 25 ноября 2010

, если вы не укажете методу edit визуализировать что-либо еще или перенаправить куда-нибудь, по умолчанию он ищет шаблон edit.erb ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...