5

Active Adminで「最新の部屋」というカスタムページを作成しました。これには、現在の日付のホテルの部屋の表が表示されます。

次に、日付を選択できるこのカスタムページのフォームを追加します。私はなんとかフォームをDatepickerで表示させることができました:

<%= semantic_form_for :newest_rooms, :builder => ActiveAdmin::FormBuilder do |f|
   f.inputs do
     f.input :Datum, :as => :datepicker
   end
   f.buttons
end %>

しかし、これを適切なコントローラーとメソッドHotelRoom.newest_roomsに送信する方法がわかりません

誰かが私にこれを行う方法を説明してくれることを願っています。以下のコードを追加しました:

newest_room.rb

ActiveAdmin.register_page "Newest Rooms" do

  menu :label => "Newest Rooms"


  content do
      render "newest_rooms"
  end
end

_newest_room.html.erb

<% @cities = Hotel.cities %>

<%= semantic_form_for :newest_rooms, :builder => ActiveAdmin::FormBuilder do |f|
   f.inputs do
     f.input :Datum, :as => :datepicker
   end
   f.buttons
end %>

<ul class="room_list">
<% @cities.each do |c| %>
<li>
    <table>
    <tr>
        <td>
            <h2><%= c.City %></h2>
        </td>
    </tr>
    <tr class="room_column">
        <td>Hotel</td>
        <td>Free Rooms</td>
        <td>BN-Price</td>
        <td>Old Price</td>
    </tr>
    <% @rooms = HotelRoom.newest_rooms(c.City) %>
    <% @rooms.each do |r| %>
    <tr>
        <td><%= r.hotel.Hotelname %></td>
        <td><%= r.FreeRooms %></td>
        <td><b><%= r.Price %>€&lt;/b></td>
        <td><%= r.OldPrice %>€&lt;/td>
    </tr>   
    <%end%>

</table>
</li>
<% end %>
</ul>

hotel_room.rb

class HotelRoom < ActiveRecord::Base
  validates :title, :presence => true
  self.table_name = "hotel_room"

  belongs_to :hotel, :foreign_key => 'H_ID'
  accepts_nested_attributes_for :hotel 


  def to_key
    [self.ID]
  end


  def self.newest_rooms(city)

      HotelRoom.find(:all, :joins => :hotel, :conditions => ["hotel.City = ? and hotel_room.Date = ?", city, Date.today])

  end

end
4

1 に答える 1

3

次のように、セマンティックフォームにURLを追加します...

<%= semantic_form_for :newest_rooms, :url => hotel_newest_room_path, :builder => ActiveAdmin::FormBuilder do |f| %>
于 2012-06-04T19:22:20.023 に答える