我试图通过单击与兴趣图像相关联的按钮来显示用户可以“关注”的“兴趣”列表。单击按钮以关注兴趣后,兴趣(及其相应的图像)应从列表中消失。
当单击关注按钮时,我在关系控制器调用的 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>
当您单击按钮时,关系控制器调用的 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