Ruby on Rails Добавление новых страниц в существующую модель - PullRequest
0 голосов
/ 10 апреля 2011

У меня есть контроллер представления модели, настроенный для таблицы Users.Однако по умолчанию мне дается только 1 пользовательская страница для каждого пользователя (users / 1).Тем не менее, мне нужна отдельная страница для каждого пользователя (users / 1 / profile)?Я очень сильно погуглил и не смог найти никаких ресурсов, как его создать.Как вы идете о создании этого?Спасибо!

Ответы [ 3 ]

2 голосов
/ 10 апреля 2011

Вы можете найти полную информацию, чтобы сделать это в виде Restful здесь: http://guides.rubyonrails.org/routing.html#adding-more-restful-actions

Это, imho, лучше, чем предоставить маршрут матча, потому что вы можете использовать названные маршруты restful routeгенерирует.Другой вариант - просто предоставить именованный маршрут вместо спокойного маршрута, но придерживаясь способа «Rails», вы получите меньше головной боли в будущем, когда вам может понадобиться рефакторинг.

Вот кодв частности, что вы хотели бы использовать:

#Routes
resources :users do
  member :profile
end

#Controller Action
def profile
   @user = User.find(params[:id])
end

#View link
<% @users.each do |user| %>
  <%= link_to "Profile", profile_user_path(user) %>
<% end %>
1 голос
/ 08 июля 2013

Сначала необходимо создать страницу профиля по умолчанию, а затем создать связь между записью страницы профиля и пользователем, используя идентификатор сеанса каждого пользователя

def profile
@user = User.find (сеанс [: user_id])
end

здесь будут показаны все данные, которые будут связаны с пользователем, и вам необходимо связать запись таблицы базы данных с пользователем, чтобы проверить, показывает ли она эту запись или нет.

1 голос
/ 10 апреля 2011

Вы бы добавили новый маршрут в ваш config / rout.Rb

 match "users/:id/profile" => "users#profile"

Тогда ваше действие и вид контроллера соответствуют.

Ваш контроллер может выглядеть как

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

И ваш вид будет в views / users / profile.html.erb

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