Общедоступные профили пользователей?Ruby on Rails + разработка - PullRequest
1 голос
/ 24 марта 2011

Как сделать общедоступные профили пользователей?Я использую Devise и имею только / user /.Пользователь может видеть только свой профиль, я хочу сделать /user/user_id.

user_id - публичный профиль пользователя.

Ответы [ 3 ]

3 голосов
/ 20 июня 2011

Чтобы создать общедоступный профиль с использованием devise, убедитесь, что у вас настроен маршрут, например

resources :users

, и убедитесь, что у вас настроено действие контроллера для обработки ресурса show.Если нет, создайте контроллер users_controller.rb и задайте ему определение класса вместе с методом show.

class UsersController < ApplicationController
  def index
    @users = User.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @users }
    end
  end

  def show
    @user = User.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @user }
    end
  end
end

Затем перейдите к /users/1 или /users/2 (если настроено два пользователя)и вы должны увидеть оба профиля.Чтобы установить их как приватные, вы должны выполнить фильтр до в действии контроллера, сравнивая идентификатор current_user с param[:user_id].

1 голос
/ 24 марта 2011

Вы должны создать маршрут в файле config / rout.rb, как показано ниже.А затем реализуйте свой метод контроллера и просмотра.

  match 'show/:id' => 'user#show'
0 голосов
/ 26 марта 2011

Я не такой опытный, но я сделал это так:

  • В контроллерах создайте файл users_controller.rb

  • В представленияхсоздать / пользователи / типичные представления, например index и show (конечно, определите их в вашем контроллере)

  • В маршрутах добавьте resources :users

Вы можете просто добавить миграции в таблицу пользователей, например

$ rails g migration add_birthday_to_users birthday:date

, и показать это на странице users /: id

...