我想根据具体需要显示相关产品,只需根据类别显示图片和名称 这是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
答案 0 :(得分:0)
您的index.haml有@relatedneed.get_name
,但您尚未在控制器中设置@relatedneed
,只有@relatedneeds
。它就这么简单吗?
另外,你在控制器中的show方法对我没有意义。您已将实例变量放在字符串中!您需要首先通过模型使用数据库查询设置实例变量。您的get_name方法看起来也属于模型,而不是控制器。