Я сделал свое приложение, основанное на сайте railstutorial.org, и теперь я нахожусь на chapter 11. Все в порядке, я многому научился в этом учебнике, и теперь я продолжаю работать над своим приложением, и я нахожусь на модели «Художники», где каждый пользователь может создать нового исполнителя ex.Michael Hartl;) и добавить их самые популярные цитаты. Проблема заключается в том, чтобы позволить пользователям следить за своими любимыми художниками и видеть цитаты в фиде, точно так же, как микропоты из канала. Художник и Пользователь - это две разные модели, и рельсовый учебник не объясняет, как сделать для этого «систему следования». Это как каналы подписки на YouTube и т. Д. Может кто-нибудь объяснить мне, как это сделать? Что я должен изменить в коде?Следующие исполнители пользователей - несколько вопросов
Ответ:
Кнопка:
<%= form_for(current_user.userartists.build(followed_id: @artist.id)) do |f| %>
<div><%= f.hidden_field :followed_id %></div>
<%= f.submit "Follow", class: "btn btn-large btn-primary" %>
<% end %>
Контроллер
class UserartistsController < ApplicationController def create @artist = Artist.find(params[:userartist][:followed_id]) current_user.follow!(@artist) respond_to do |format| format.html { redirect_to @artist } format.js end end end
Благодарим за ответ, но это не работает. Есть пара проблем с этим методом, и после целой недели работы я должен попробовать сделать это другим способом. – eglaza
Что именно не работает и что вы пробовали? – Zippie
Когда я нажимаю «Follow» на странице исполнителя, он снова загружает сайт и показывает мне кнопку «unfollow», поэтому я думаю, что теперь она работает. Когда я смотрю в базе данных (rails c), набрав '@user = User.first', а затем' @ user.artists', он показывает мне только '' => [] "'. Я много думал об этом, и я действительно не знаю, почему он не работает для меня. – eglaza