首先关闭你好,谢谢你花时间阅读我的问题,
简而言之,我做错了什么似乎无法弄清楚它现在已经尝试了一段时间。
使用:acts_as_follower gem,并设置简单的follow和unfollow按钮,当你按下它时,create.js和destroy.js有一个局部渲染部分渲染,但是我得到500内部错误
NoMethodError in Follows#create
显示/app/views/follows/_form.html.erb,其中第2行引发: undefined方法`follow_by?'为零:NilClass 模板包含跟踪:app / views / follow / create.js.erb
FollowsController
class FollowsController < ApplicationController
before_action :authenticate_user!
respond_to :js
def create
@v = Vlog.find(params[:vlog_id])
current_user.follow(@v)
respond_to do |format|
format.html
format.js
end
end
def destroy
@v = Vlog.find(params[:vlog_id])
current_user.stop_following(@v)
respond_to do |format|
format.html
format.js
end
end
end
索引视图
<%= render :partial => 'follows/form', locals: {:vlog_id => @vlog.id} %>
路线
match :follow, to: 'follows#create', as: :follow, via: :post
match :unfollow, to: 'follows#destroy', as: :unfollow, via: :post
如下/ _form.html.erb
<div class="follow">
<% if @vlog.followed_by?(current_user) %>
<%= form_tag unfollow_path(vlog_id: @vlog.id), remote: true do %>
<%= button_tag 'unfollow', class: 'btn btn-primary' %>
<% end %>
<% else %>
<%= form_tag follow_path(vlog_id: @vlog.id), remote: true do %>
<%= button_tag 'follow', class: 'btn btn-success' %>
<% end %>
<% end %>
</div>
跟随/ create.js和destroy.js
$(".follow").html("<%=j render(:partial => 'follows/form', locals: {:vlog_id => @v.id}).html_safe %>")
提前致谢!