ユーザーが興味の画像に関連付けられたボタンをクリックして「フォロー」できる「興味」のリストを表示しようとしています。関心をフォローするボタンをクリックすると、関心 (およびそれに対応する画像) がリストから消えます。
フォローボタンがクリックされたときにリレーションシップコントローラーによって呼び出されるcreate.js.erbファイルで非表示関数を使用していますが、関数は一連の興味の最初の興味のみを非表示にします-ユーザーがクリックした興味は非表示にしますその上で消える必要があります。したがって、これを設定するためのより良い方法が必要ですが、私の人生では、それを理解することはできません. これが私の現在の設定です:
私のコントローラー
class StaticPagesController < ApplicationController
def home
@user = current_user
@city = request.location.city
@interests = Interest.all
end
ホームページ
<%= render @interests %>
パーシャル
<div id="follow_form">
<div class="four columns portfolio-item interests">
<div class="our-work">
<a class="img-overlay">
<%= image_tag interest.image_path %>
<div class="img-overlay-div">
<h4><%= interest.name %></h4>
</br>
<h5>Placeholder
</br>
<%= interest.desc %></h5>
<%= form_for(current_user.relationships.build(followed_id:
interest.id), remote: true) do |f| %>
<div><%= f.hidden_field :followed_id %></div>
<%= f.submit "I'm interested", class: "b-black" %>
<% end %>
</div>
</a>
<h3><a href="#"><%= interest.name %></a><span>features info</span></h3>
</div>
</div>
</div>
そして、ボタンをクリックしたときに Relationships コントローラーによって呼び出される create.js.erb :
$("#follow_form").hide();
更新 追加の明確化のためのリレーションシップコントローラーは次のとおりです
def create
@interest = Interest.find(params[:relationship][:followed_id])
current_user.follow!(@interest)
respond_to do |format|
format.html { redirect_to(root_url) }
format.js
end
end