2012-03-27 11 views
0

こんにちは、私のアプリケーションで少し問題があります。私は、予約の アプリケーションの私の機能部屋が示されている静的なページを作りました。予約functionroom)これまで私は<%= link_to "add functionrooms", reservation_pages_functionroom_path(@reservation) %>へのルートは、事前にいただきました!間違っ 非常に感謝感謝未初期化定数予約

ページの静的なページ

class PagesController < ApplicationController 

    def functionroom 
    @reservation = Reservation.find(params[:reservation_id]) 
    @function_room = FunctionRoom.all 
    end 
end 
を把握傾けるとき は初期化されていない一定の予約を上げます

functionroom.html.erb

<% if notice %> 
<p id = "notice"><%= notice%></p> 
<%end%> 

    <h1>functionRooms</h1> 
    <%@function_room.each do |functionroom|%> 
    <h3><%= functionroom.name%></h3> 
    <p><%= number_to_currency(functionroom.price)%></p> 
    <%= button_to 'add function room', 
reservation_reservation_function_room_path(:function_room_id => 
functionroom), :method => :post,:remote => true%> 
    <%end%> 

reservation_contoller.rb

def index 
    @reservations = Reservation.all 
    end 

    def show 
    @reservation = Reservation.includes(:reservation_function_rooms => 
:function_room,:reservation_package => :package).find(params[:id]) 
    end 

class ReservationFunctionRoomsController < InheritedResources::Base 
def show 
    @reservation_function_room = 
ReservationFunctionRoom.find(params[:id]) 
end 


def new 
    @reservation_function_room = ReservationFunctionRoom.new 
end 

def create 
    @reservation = Reservation.find(params[:reservation_id]) 
    function_room = FunctionRoom.find(params[:function_room_id]) 
    @reservation_function_room = 
@reservation.add_function_room(function_room.id) 

    if @reservation_function_room.save 
    redirect_to @reservation, :notice => "function room successfuly 
added" 
    end 
end 
end 

経路

get "pages/menu" 

    resources :reservation_function_rooms 




    resources :services 

    resources :reservations do 
    get "pages/functionroom" 
    end 

    resources :reservation_packages 

    resources :package_line_items 


    resources :packages do 
    resources :package_crews 
    end 

    resources :function_rooms 

reservation.rb

class Reservation < ActiveRecord::Base 
    has_one :reservation_package 
    belongs_to :service 
    has_many :reservation_function_rooms 
    has_many :package_line_items 
    has_many :menus , :through => :package_line_items, :uniq => true 
    has_many :function_rooms, :through =>:reservation_function_rooms 

    def add_function_room(function_room_id) 
    current_function_room = 
reservation_function_rooms.find_by_function_room_id(function_room_id) 
    if current_function_room 
     redirect_to @reservation, :notice => "function room already 
added" 
    else 
    current_function_room = 
reservation_function_rooms.build(:function_room => function_room_id) 
    current_function_room.price = 
current_function_room.function_room.price 
    end 
    current_function_room 
    end 

end 

予約/ show.html.erb

<p id="notice"><%= notice %></p> 

<p> 
    <b>Name:</b> 
    <%= @reservation.name %> 
</p> 

<%= display_package @reservation%> 
<p> 
    <b>Address:</b> 
    <%= @reservation.address %> 
</p> 

<p> 
    <b>Contact:</b> 
    <%= @reservation.contact %> 
</p> 

<p> 
    <b>Date:</b> 
    <%= @reservation.date %> 
</p> 

<p> 
    <b>Timestart:</b> 
    <%= @reservation.timeStart %> 
</p> 

<p> 
    <b>Timeend:</b> 
    <%= @reservation.timeEnd %> 
</p> 

<p> 
    <b>Numguest:</b> 
    <%= @reservation.numGuest %> 
</p> 

<p> 
    <%= link_to "add functionrooms", reservation_pages_functionroom_path(@reservation) %> 
</p> 



<table> 
    <tr> 
     <th>Function room</th> 
     <th>Price</th> 
    </tr> 
    <% @reservation.reservation_function_rooms.each do |room|%> 
    <tr> 
     <td><%= room.function_room.name%></td> 
     <td><%= room.function_room.price%></td> 
    </tr> 



<%end%> 


</table> 





<%= link_to 'Edit', edit_reservation_path(@reservation) %> | 
<%= link_to 'Back', reservations_path %> 

何が必要な場合は、事前に感謝を気軽に:)

+0

詳細を入力せずに、コードに大きな誤りがあることがあります。 'redirect_to @reservation ... ' – Zheileman

+0

私は既にその行を削除しようとしましたが、add_functionrommメソッドを使用しないようにしましたが、返信用の同じ感謝の言葉は – Led

+0

です'uninitialized constant Reservations'はあなたのコードのどこかに型があり、Reservation(あなたのモデル名)ではなくReservations上のクラスメソッドを呼び出そうとしていることを教えてくれます。あなたのコードを「予約」するためのグローバル検索を行い、「予約」ではなく「予約」を参照している場所を探します。 –

答えて

0

私はそれが4年であったことを知っていますが、私は同じ問題を走りました。それはどこから来たのか分かりました。行う単一のリソースまたはhas_manyの関係のいずれか:私は「S」ここで問題であると思い

あなたは依存関係「にhas_one:reservation_package」持って を、あなたは「reservation_packagesリソース」を持って下げます。なぜ彼はそれを見つけることができません。 これは私の問題を解決した方法です。

関連する問題