У меня есть простое веб-приложение с пользователями и сообщениями. У меня есть контроллер индекса и просмотра, который показывает список сообщений в базе данных. Со списком отображается ссылка «Показать», которая ссылается на конкретный пост.
Я пытаюсь повторить это для пользователей, но что-то идет не так. У меня есть индексное представление, которое показывает всех пользователей в базе данных, и у меня есть ссылка «Профиль», которая должна ссылаться на конкретного пользователя. (Действие «Показать» уже используется для собственной учетной записи пользователя). См. Код ниже. Действие «Профиль пользователя» такое же, как действие «Опубликовать», но оно не работает.
# users_controller.rb
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
def profile
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
# posts_controller.rb
def index
@posts = Post.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
end
end
def show
@post = Post.find(params[:id])
@user = User.find_by_id(@post.user_id)
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
end
# users/index.html.erb
<h1>Listing All Users</h1>
<table>
<tr>
<th>Name</th>
<th>Email</th>
</tr>
<% @users.each do |user| %>
<tr>
<td><%= link_to user.login, user %></td>
<td><%=h user.email %></td>
</tr>
<% end %>
</table>
<br />
Я думаю, что это может быть проблемой на моих маршрутах. Но я ничего не вижу.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
map.root :controller => "Home"
map.resource :account, :controller => "users"
map.resources :password_resets
map.resources :users
map.resource :user_session
map.root :controller => "user_sessions", :action => "new"
map.resources :users, :has_many => :posts
Когда я пытаюсь перейти к users / 1, я получаю сообщение «Ни одного действия не получено. Действия: создание, редактирование, индексирование, создание новых, профилей, показ и обновление»