2017-05-18 10 views
0

私のコントローラを定義されています未定義のメソッド `complete_name」はメソッドがすでに

class RoomsController < ApplicationController 
    before_action :set_room, only: [:show, :edit, :update, :destroy] 

    def nome_completo 
    "#{title}, #{location}" 
    end 


    # GET /rooms 
    # GET /rooms.json 
    def index 
    @rooms = Room.all 
    end 

    # GET /rooms/1 
    # GET /rooms/1.json 
    def show 
    end 


    # GET /rooms/new 
    def new 
    @room = Room.new 
    end 

    # GET /rooms/1/edit 
    def edit 
    end 
...... 
end 

マイビュー:あなたは私はすでにコントローラに私の方法を定義している

<h1>Quartos recém postados</h1> 
<ul> 
    <% @rooms.each do |room| %> 
    <li><%= link_to room.nome_completo , room %></li> 
    <% end %> 
</ul> 

The error: undefined method `nome_completo' for #Room:0x0000000ed6d478

を見ることができるようにしかし、私はそれをビューで呼び出そうとすると、私はこのメッセージを受け取りました。これは私が定義するすべてのメソッドでは起こりますが、クラスに付属のメソッドでは起こりません。

P.S私の悪い英語のために申し訳ありません。

+3

あなたのメソッドは 'Rooms'モデルの中で代わりに定義されるべきときに' RoomsController'で定義されます。 – Zoran

答えて

2

Roomモデルでは、コントローラではなくメソッドがありません。あなたは正確に同じエラーが表示されます。

The error: undefined method `nome_completo' for #Room:0x0000000ed6d478

方法は、あなたが見たいRoomsControllerに呼び出されていた場合:コントローラは、要求と応答する責任がある

The error: undefined method `nome_completo' for #RoomsController:0x0000000ed6d478

Roomモデルは部屋のために責任があります。

app/models/room.rbにメソッドを追加します。

関連する問題