Завожу друга, кстати. Вместо создания контроллера дружбы я решил добавить в ресурсы пользователей действия для передачи данных в таблицу дружбы. Странно то, что после того, как я настроил маршруты и добавил метод show_friend в свой пользовательский контроллер, ссылки в моих представлениях не могут направить меня на отображение частичного шаблона на моей странице user.show. Он отметил эту ошибку:
ActionController :: UnknownFormat в UsersController # show_friend
Я проделал то же самое с другими моими действиями: show_reply / show_draft / show_collect, поэтому я не совсем понимаю, почему это не работает.
Это мой первый вопрос, размещенный здесь. Пожалуйста, дайте мне знать, если я не исправил. (мой гитхаб, если нужно ...)
routes.rb
resources :users do
member do
get :show_reply
get :show_draft
get :show_collect
get :show_friend
post :invite_friend
post :accept_friend
post :ignore_friend
end
end
user_controller.rb
def show_friend
@user = User.find(params[:id])
end
просмотры / пользователи / show.html.erb
<li class = "nav-item">
<%= link_to "My Friends", show_friend_user_path(@user), class: "nav-link #{'active' if action?('show_friend')}" %>
</li>
#...left out...
<div class = "row">
<div class = "col">
<% if action?('show_draft') %>
<%= render partial: 'drafts' %>
<% elsif action?('show_reply') %>
<%= render partial: 'replies' %>
<% elsif action?('show_collect') %>
<%= render partial: 'collection' %>
<% elsif action?('show_friend') %>
<%= render partial: 'friends' %>
<% else %>
<%= render partial: 'posts' %>
<% end %>
</div>
</div>
просмотры / пользователи / _friends.html.erb
<div class = "big-yellow-light">
<h1>Here's the FRIENDSHIP info</h1>
</div>
Я не готовил show_friend.html.erb, потому что хочу, чтобы он рендерил частичную: _friends.html.erb на моей странице пост-шоу. Но да, после того, как я добавил новый файл show_friend.html.erb в папку моих пользователей, соединение работает нормально. И я внезапно нашел ключ: в моем def show_friend мне пришлось добавить эту строчку: render :show. В этом вся разница! Спасибо за вашу помощь! Ответ просто поражает меня ...





Ваше действие -
show_friend, поэтому, когда Rails обрабатывает его, он отображает шаблонshow_friend.html.erb(если не указан другой шаблон, но вы не укажете его). Можешь показать свойshow_friend.html.erb?