0

我想根据某个需要展示相关产品,只是图片和名称而已,取决于类别这里是mu控制器

class RelatedneedsController < ApplicationController

  def index
    @relatedneeds = RelatedNeed.all
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @relatedneeds }
    end
  end 

  def show
    s1 = '@need.category.name'
    s2 = '@relatedneed.category.name'

    if s1.eql?(s2)
      @relatedneed = relatedneed.find(params[:id])

      respond_to do |format|
        format.html # show.html.erb
        format.json { render json: @need }
      end
    end
  end

  def get_name
      @relatedneed.name
  end
end

这是我的模型

class Relatedneed
  include Mongoid::Document
  include Mongoid::Paperclip

  mapping do
    indexes :name 
  end

  field :name, type: String

  belongs_to :category
  belongs_to :user
end

这是 show.haml 文件

%h1
  %b= @need.name

#container{:style => "width:1000px"}
    #desc{:style => "height:400px;width:400px;float:left;"}
        =image_tag @relatedneed.photo.url(:normal)

这是我的 index.haml 文件

%h1= @relatedneed.get_name

#container{:style => "width:1000px"}
    #desc{:style => "background-color:#EEEEEE;height:400px;width:400px;float:left;"}
    = link_to "Check Need", new_need_path

我不知道他们是否缺少某些东西,并且我在 RelatedneedsController#index 中收到此错误 NoMethodError

未定义的方法“键?” 对于零:NilClass

4

1 回答 1

0

你的 index.haml 有@relatedneed.get_name但你没有@relatedneed在你的控制器中设置,只有@relatedneeds. 就这么简单吗?

此外,您在控制器中的 show 方法对我来说毫无意义。您已将实例变量放在字符串中!您需要首先通过模型使用数据库查询设置实例变量。您的 get_name 方法看起来也属于模型而不是控制器。

于 2012-04-19T23:45:25.707 回答