2010-11-06 3 views
1

у меня есть Rails 3 приложения с Devise ...Rails 3 - Настройка контроллера счета W Просмотры

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

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

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

Маршруты:

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

Просмотров существует в настоящее время данные имена выше с/просмотров/счет/...

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

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="https://stackoverflow.com/users/13" class="edit_user" enctype="multipart/form-data" id="edit_user_13" method="post"> 

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

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

Спасибо

ответ

2

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

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

Кроме того, обратите внимание на использование вложенных ресурсов в маршрутах для профили, уведомления, и т.д. (раздел 2.7 в рельсах документ):

resources :accounts do 
    resources :profiles, :notices 
end 

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

/accounts/123/notices/3/edit 
Смежные вопросы