【发布时间】:2013-09-13 00:34:18
【问题描述】:
我正在尝试显示“兴趣”列表,用户可以通过单击与兴趣图像相关联的按钮来“关注”这些“兴趣”。单击按钮以关注兴趣时,兴趣(及其相应的图像)应从列表中消失。
我在 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
【问题讨论】:
标签: javascript ruby-on-rails ajax forms ruby-on-rails-4