ruby-on-rails - 遵循对象所有实例的操作

标签 ruby-on-rails ruby relationship twitter-follow

目前,我在为一个用户显示关注/取消关注按钮时拥有全部功能。 我能够正确地关注和取消关注任何用户。

但是,当显示所有用户的列表并在每个用户上显示关注/取消关注按钮时。

当我点击关注时,我得到了。

我得到undefined local variable or method `following' for #<#:0x007fa8a9b4f448> 在 _unfollow.html.erb 的第二行 - 完整错误请参见下面的照片

我在渲染局部时传入变量。

<%= render 'follow_aud_form', :following => following if signed_in? %> 

我还能够检查“following”并查看实例数据。

点击后返回时,它实际上是关注/取消关注所选用户,但是它首先产生错误

见下面的代码

用户 Controller

def following
 @title = "Following"
 @user = User.find(params[:id])
 @users = @user.followed_users
 render 'show_follow'
end

def followers
  @title = "Followers"
  @user = User.find(params[:id])
  @users = @user.followers
  render 'show_follow'
end

show_follow.html.erb

<% @users.each do |following|%>

        <div class="span1">
          <%= render 'follow_aud_form', :following => following if signed_in? %>
        </div>

    <% end %>

关注aud_form

<div id="follow_form">
  <% if current_user.following?(following) %>
    <%= render 'unfollow', :following => following %>
  <% else %>
    <%= render 'follow', :following => following %>
  <% end %>
  </div>

_follow_html

|__<%= @gaza_id = following.id %>__|
<%= form_for(current_user.relationships.build(followed_id: @gaza_id)) do |f| %>
  <div><%= f.hidden_field :followed_id %></div>
  <%= f.submit "Follow",:type => :image, :src => "/assets/follow.png" %>
<% end %>

_unfollow.html

|__<%= @slim_id = following.id %>__|
<%= form_for(current_user.relationships.find_by_followed_id(@slim_id),
             html: { method: :delete }) do |f| %>
  <%#= f.submit "Unfollow", class: "btn btn-large" %>
  <%= f.submit "Unfollow",:type => :image, :src => "/assets/following.png" %>
<% end %>

我还查看了 Users list with follow/unfollow button

enter image description here

最佳答案

只需尝试将 _show_follow.html.erb 更改为:

<% @users.each do |following|%>

    <div class="span1">
      <% f = signed_in? ? following : ''
      <%= render 'follow_aud_form', :following => f %>
    </div>

<% end %>

我相信您遇到的唯一问题是,除非用户已登录,否则不会创建本地变量 :following。提议的更改只是确保无论如何都会创建本地变量。

关于ruby-on-rails - 遵循对象所有实例的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18131144/

相关文章:

ruby-on-rails - 如何在 Heroku 上的 Rails 应用程序中计算箱线图(四分位数、中位数)的数据? (Heroku 使用 Postgresql)

ruby-on-rails - 如何在rails中迁移dbase数据库

ruby-on-rails - 为什么需要 gem 规范,为什么有些 gem 创作者不提供它们?

ios - 核心数据关系 - 两个实体对一个实体

sqlalchemy - 如何将带有子查询的查询转换为关系

ruby-on-rails - 如何计算日期的下一个年度出现?

ruby-on-rails - Rails Controller /模型方法

ruby-on-rails - 跨前端服务器共享缓存文件的可扩展方式

javascript - 从 capybara/poltergeist 功能测试触发 Angular Directive(指令)

ios - 如何创建一个核心数据模型,其父实体和关系