我有一个Rails 5.0.2应用程序,并且我已设法使用JoinAlias
gem实现用户跟随系统。一切都运作良好,但是,我在添加ajax时遇到了一些麻烦。
点击'关注'
后,我收到以下错误消息acts_as_follower
我有以下
NoMethodError at /7/follow
==========================
> undefined method `followed_by?' for nil:NilClass
users_controller.rb
def follow
user = User.find(params[:id])
current_user.follow(user)
respond_to do |format|
format.html { redirect_to user}
format.js
end
end
show.html.erb
...
<div id="follow">
<%= render partial: "users/following", locals: {user: @user} %>
</div>
...
_following.html.erb
我知道在创建记录后我的部分中没有<% if !@user.followed_by?(current_user) %>
<%= link_to follow_user_path(@user.id), remote: true do %>
<h4><span class="label label-primary">Follow</span></h4>
<% end %>
<% else %>
<%= link_to unfollow_user_path(@user.id) do %>
<h4><span class="label label-primary">Unfollow</span></h4>
<% end %>
<% end %>
,我无法解决如何将其传回部分内容。任何帮助将不胜感激。
答案 0 :(得分:0)
傻傻的我。
在以下方法中我有这个:
1. Download latest Bootstrap Source to a VS2015 project used for creating a Bootstrap distributable (say bootstrapfactory)
2. Download Variables.less and Theme.less from a site like http://bootstrap-live-customizer.com/
3. Use bootstrapfactory to create Bootstrap distributable using the downloaded Variables.less and Themes.less
4. Copy distributables from bootstrapfactory to Target Project's wwwroot\lib\bootstrap\dist
但应该是
def follow
user = User.find(params[:id])
current_user.follow(user)
respond_to do |format|
format.html { redirect_to user}
format.js
end
end
def follow
@user = User.find(params[:id])
current_user.follow(@user)
respond_to do |format|
format.html { redirect_to @user}
format.js
end
end
而不是@user
答案 1 :(得分:0)
你的问题是你的控制器中你有用户,没有“@”用户是一个存在于你的控制器方法中的变量,@ user是一个可以在视图上访问的实例变量。
因此,如果您打算在视图上使用它,则需要在变量中添加“@”。