Rails 3 - Настройка контроллера аккаунта w Views - PullRequest
1 голос
/ 07 ноября 2010

У меня есть приложение Rails 3 с Devise ...

Я хочу создать контроллер учетной записи, который позволит пользователю обновлять свою учетную запись, такие как профиль, учетная запись, уведомления, пароль и т. Д..

Вот что я сделал до сих пор.

Я создал контроллер учетной записи, который дал мне следующее:

Маршруты:

  get "account/profile"
  get "account/password"
  get "account/notices"

Представления теперь существуют, учитывая имена выше с /views/account/...

Мой контроллер

class AccountController < ApplicationController

  before_filter :authenticate_user!

  def profile
    @user = User.find(current_user.id)
  end

  def password
  end

  def notices
  end

  def privacy
  end

  def disable
  end

end

Просмотр профиля учетной записи:

<% form_for @user, :html => { :multipart => true} do |f| %>

Проблема в том, что форма выглядит следующим образом:

<form accept-charset="UTF-8" action="/users/13" class="edit_user" enctype="multipart/form-data" id="edit_user_13" method="post">

И я хочу, чтобы она была похожа на /account/profile/update, чтогде должна публиковаться форма?

Это первый раз, когда я сделал что-то подобное.Я на правильном пути?Как мне добавить / account / profile / update part?Добавить что-то в маршрут и изменить тег формы ???Есть ли более чистый способ сделать это в маршруте?

Спасибо

1 Ответ

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

Вы должны придерживаться маршрутов RESTful, когда это возможно. Вместо URL-адресов, подобных /profile/123/update, альтернативой RESTful будет /profile/123 с использованием HTTP PUT

прочтите это для получения дополнительной информации о маршрутах RESTful в Rails 3: http://edgeguides.rubyonrails.org/routing.html

Также обратите внимание на использование вложенных ресурсов в ваших маршрутах для профилей, уведомлений и т. Д. (Раздел 2.7 в документации по rails):

resources :accounts do
  resources :profiles, :notices
end

Например, редактирование с использованием вложенного ресурса даст вам такие маршруты:

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