未定义的方法`每个'为nil:NilClass schneems reddit示例

时间:2013-12-15 00:21:59

标签: ruby-on-rails

我认为将@links=Link.all添加到我的控制器会解决这个问题。 我确实通过查看Link.count=6

确保我的链接数据库中有有效的条目

我收到以下错误:

页面中的NoMethodError #index
 显示/Projects/reddit_on_rails/app/views/pages/index.html.erb,其中第6行被提出:

未定义的方法`each'代表nil:NilClass

<ul>
<% @links.each do |link| %>
<li>link.url</li>
<li>link.title</li>
<% end %>

我的控制器:

class LinksController < ApplicationController
  #Added @links =Link.all  did not solve the problem

  def index
    @links = Link.all
  end

  def show
  end

  def new
    @link = Link.new
    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @link }
    end
  end

  def create
    @link = Link.new(link_params)

    if @link.save
      #render "new"
      redirect_to "/"
    else
      # This line overrides the default rendering behavior, which
      # would have been to render the "create" view.
      render "new"
    end
  end

 private

   def link_params
     params.require(:link).permit(:title,:url)
   end 
end

3 个答案:

答案 0 :(得分:0)

@linksnil,因为您没有在控制器的任何位置设置@links = Link.all

您无法在each上致电nil

答案 1 :(得分:0)

你在看什么?假设index.html.erb。

在控制器中

,尝试添加

def index
  @link = Link.all
end

如果不起作用,请确认您有任何链接。在终端中而不是键入rails server类型

rails console
Link.all

如果以[]的形式返回,那么您的数据库中没有任何内容。

答案 2 :(得分:0)

根据您的说明,您收到以下错误消息

NoMethodError in Pages#index
Showing /Projects/reddit_on_rails/app/views/pages/index.html.erb where line #6 raised:

根据错误消息,Pages方法中的index控制器出现问题。因此,您需要在Pages控制器内部而不是Links控制器内部解决问题。

您的index控制器中是否有名为Pages的方法?

相关问题