- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我试图让我的关注者显示在页面/ friend 上,但是,我不断收到多个错误,例如未定义方法“each” for nil:NilClass 在我的 Pages#friends 错误中。我正在关注 Michael Harlts 的关注/取消关注教程,但是,我需要调整一些东西,因为我没有关注整个事情。
当用户转到他们的 friend 链接(页面/ friend )时,我希望它显示所有关注他们的人。就像我的 users/index 显示每个人的方式一样。请在下面查看我的代码。任何建议的帮助都会很棒。
页面/ friend
<h1>Friends</h1>
<% @user ||= current_user %>
<% @users.each do |user| %>
<center><%= link_to image_tag(user.avatar.url(:thumb)), user %></center>
<strong><center><br><%= link_to user.name, user %></br></center></strong>
<% if current_user.admin %>
<% end %>
<% end %>
页面/ Controller
def home
end
def about
end
def friends
end
end
**用户/索引*
<% provide(:title, 'All users') %>
<h1>All users</h1>
<div class="col-md-offset-4 col-med-8">
<div class="panel panel-default">
<div class="panel-heading center">
<% @users.each do |user| %>
<center><%= link_to image_tag(user.avatar.url(:thumb)), user %></center>
<strong><center><br><%= link_to user.name, user %></br></center></strong>
<% if current_user.admin %>
<% @user ||= current_user %>
<div class="stats">
<a href="<%= friends_path(@user) %>">
<strong id="following" class="stat">
<%= @user.followed_users.count %>
</strong>
following
</a>
<a href="<%= friends_path(@user) %>">
<strong id="followers" class="stat">
<%= @user.followers.count %>
</strong>
followers
</a>
</div>
<center><%= link_to "Delete", user, method: :delete, data: { confirm: "Are you sure?" } %></center>
<% end %>
<% end %>
<div class="center">
<%= will_paginate @users, renderer: BootstrapPagination::Rails %>
</div>
</div>
路线
devise_for :admins
devise_for :users
resources :posts
resources :users do
member do
get :following, :followers
end
end
resources :relationships, only: [:create, :destroy]
resources :user_friendships do
member do
put :accept
end
end
get "users/show"
root "pages#home"
get 'feed', to: 'posts#index', as: :feed
get "about" => "pages#about"
get "friends" => 'pages#friends'
match 'users/:id' => 'users#show', via: :get
match 'users/:id' => 'users#index', via: :destroy
match 'users/:id' => 'users#destroy', via: :get
match 'users/:id' => 'users#destroy', via: :delete
get '/:id', to: 'users#show'
用户/控制者
class UsersController < ApplicationController
before_action :correct_user, only: [:edit, :update, :destroy, :following, :followers]
before_action :authenticate_user!, except: [:index, :show]
before_action :admin_user, only: :destroy
def index
@users = User.paginate(page: params[:page], :per_page => 5)
end
def show
@user = User.find(params[:id])
if @user
@posts = @user.posts.all
render actions: :show
else
render file: 'public/404', status: 404, formats: [:html]
end
def destroy
User.find(params[:id]).destroy
flash[:success] = "Your account has been deleted."
redirect_to root_path
end
def correct_user
@user = User.find(params[:id])
redirect_to root_path
end
def admin_user
redirect_to root_path unless current_user.admin?
end
def following
@title = "Following"
@user = User.find(params[:id])
@users = @user.followed_users.paginate(page: params[:page])
render 'show_follow'
end
def followers
@title = "Followers"
@user = User.find(params[:id])
@users = @user.followers.paginate(page: params[:page])
render 'show_follow'
end
end
end
关系控制者
class RelationshipsController < ApplicationController
before_action :authenticate_user!, except: [:index, :show]
def create
@user = User.find(params[:relationship][:followed_id])
current_user.follow!(@user)
respond_to do |format|
format.html { redirect_to @user }
format.js
end
end
def destroy
@user = Relationship.find(params[:id]).followed
current_user.unfollow!(@user)
respond_to do |format|
format.html { redirect_to @user }
format.js
end
end
end
最佳答案
错误undefined method 'each' for nil:NilClass
表示您正在调用 .each
在 nil
的对象上.
例如这里,@users
可能是 nil
:
def index
@users = User.paginate(page: params[:page], :per_page => 5)
end
如果您随后调用 <% @users.each ... %>
,你会得到 undefined method
错误。您已经在上面发布了很多代码,因此很难确切地知道错误是在哪里抛出的。尝试找出错误发生的确切位置(发布堆栈跟踪会有所帮助),并找出哪个对象是 nil
.然后找出为什么它是nil
- 没有数据吗?或者您的 ActiveRecord 查询没有返回任何结果?
希望这能为您提供一些指示,让您知道下一步该从哪里开始。
编辑: 正如 mmichael 指出的那样,错误是由于 @users
造成的。在 pages#friends
中未声明.谢谢!
关于ruby-on-rails - 未定义方法 `each' 为 nil :NilClass within Pages#friends,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004641/
我正在尝试为应用程序扩展 Ruby 的 NilClass,以便任何方法调用都将返回 nil(实际上是 self,新的扩展 nil)。目的是避免大量额外的 nil 检查逻辑,例如, results =
我正在尝试使用Rails应用程序中的devise来授予对Rack中间件中的Sinatra应用程序的访问权限。 我的config/routes.rb有: authenticate "admin" do
我使用 dbf gem 从 df 文件中读取数据。我写了一些代码: # encoding: UTF-8 require 'dbf' widgets = DBF::Table.n
我试图避免由于 NilClass 而导致的 NoMethod 错误。我的代码如下所示: @branded, @nonbranded, @unknown, @affiliate, @social, @r
我使用的是 rails 2.3.5 和 ruby 1.8.7。我正在构建一个简单的 TODO 管理器。我有属于用户的任务,而用户有很多任务。 我使用 acts_as_taggable_on_ste
上下文 - 我们有大量的 Chef 属性来执行我们的安装,现在已经为每个环境定义和更改了大约 3000 多个属性。 问题 - 有时 Chef Recipe 会引用不存在的属性 node[:mystuf
我目前使用的是: 20: Status: 但是,我仍然收到以下错误: ActionView::TemplateError (undefined method `status' for
请找到代码的一部分: button = Login_form.button_with(:name => 'Submit') loggedin_page = Login_form.submit(butt
NoMethodError位于/ nil:NilClass的未定义方法`page_media' indexapp/controllers/homepage_controller.rb before
正如我们所知,(几乎)Ruby 中的一切都是一个对象,它是一个类的实例。 nil 也是一个对象: 2.1.3 :016 > nil.object_id => 8 它是 NilClass 的一个实例:
我在 User#index 中有这段代码查看: 返回用户名: user1 user2 user3 ... 然后我将此代码移至 UserHelper : module UserHelper
我的目标是制作一个投票机,将候选人的选票计入总数。最终我想添加写入候选人的选项,但我遇到了这个错误: undefined method 'push' for nil:NilClass) at line
编辑 |或者另一个关于同一 object 主题的问题。我可以编写自己的类定义来使以下所有内容正常工作吗? o = WeirdObject.new puts "Object o evaluates as
这似乎是一个显而易见的问题,但我是新手。我正在尝试抓取 Rotten Tomatoes top 100 movie一个简单的 CLI 应用程序的列表。一切顺利,直到 hero.link 行我得到了 n
感谢您回答我之前的问题,但我遇到了一个新问题。 我正在创建一个自定义验证器,用于验证用户是否输入了干净的单词。这个在我的 UsersController 上用作验证方法。 我正在使用 Obscenit
我现在被这个错误困住了很长一段时间,已经走到了死胡同。 我得到了这个完全无用的错误 can't dup NilClass 情况是这样的。 我有一个类(class)与另一个类(class)有关系。说
我知道这是一百万次,但尝试了一切,我仍然收到此错误: $ rake db:migrate rake aborted! undefined method `accept' for nil:NilClas
Controller def show @dailies = Daily.where(store_id: params[:store]).order(created_at: :asc).by_mo
有人能帮我解决这个错误吗? NoMethodError in Posts#create Showing C:/Users/User/Documents/website/app/views/posts/
我有一个类似于这里的问题的问题,但删除数据库对我的项目来说不是一个可行的解决方案:Rails 5.2 ActiveStorage undefined method `signed_id' for ni
我是一名优秀的程序员,十分优秀!