0

関連商品を特定のニーズに合わせて表示したいのですが、カテゴリに応じて写真と名前だけです。ここはミューコントローラーです

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 が発生します。

未定義のメソッド「キー?」nil:NilClass の場合

4

1 に答える 1

0

index.haml は持っていますが、コントローラーに@relatedneed.get_name設定していません。そんなに簡単ですか?@relatedneed@relatedneeds

また、コントローラーの show メソッドは意味がありません。インスタンス変数を文字列内に配置しました! 最初にモデルを介してデータベース クエリでインスタンス変数を設定する必要があります。get_name メソッドは、コントローラーではなくモデルにも属しているように見えます。

于 2012-04-19T23:45:25.707 に答える