Разработать пользовательский Show Page Controller не работает - PullRequest
0 голосов
/ 23 декабря 2011

Я использую rails 3.1.3 (я верю в последнюю версию) и в своем приложении я использую гем Devise для аутентификации пользователя.Чтобы добавить страницу пользовательского шоу (профиля), я добавил Users_Controller.rb

class UsersController < ApplicationController
  before_filter :authenticate_user!

  def show
    @userProfile = User.find(params[:id])
    @user = current_user
    @title = @userProfile.name
  end
end

и в файле routes.rb у меня есть resources :users.У меня тоже есть простой app/views/users/show.html.erb.Теперь все это работает отлично и прекрасно, когда я вручную захожу на localhost: 3000 / users / 1, но, когда я пытаюсь сделать ссылку на профиль <%=link_to "My Profile", user_path(@user) %> (это в моем случае applicationcontroller.rb имеет значение) я получаю действиеКонтроллер: Исключение No route matches {:action=>"show", :controller=>"users"} НО, когда я граблю маршруты, показываются боевики и пользователи контроллера.Что я делаю неправильно!!!Пожалуйста, помогите !!

Ответы [ 3 ]

3 голосов
/ 23 декабря 2011

вместо

<%=link_to "My Profile", user_path(@user) %>

до

<%=link_to "My Profile", @user %>

Однако делать это в ApplicationController кажется немного странным. Вероятно, он должен быть в файле вида или макета.

1 голос
/ 23 декабря 2011

Вы должны передать @user представлению, в котором вы отображаете эту ссылку.

0 голосов
/ 23 декабря 2011

вы можете попробовать эту альтернативу.

<%=link_to "My Profile", "/users/#{@user.id}" %>
...