0

我正在尝试制作一个应用程序,用户可以在其中预约特定的房间(用户 has_many 约会和房间 has_many 约会)

我正在使用 event_calendar gem。这是一个简单的宝石,但可以满足我的一切需求,并显示我的约会日历。

但是我怎样才能有一个日历到一个房间呢?日历,在这个 gem 中,不是模型,所以没有 has_one 的关系

我可以在 routes.rb 上做这样的事情吗

  match 'room/:id/calendar(/:year(/:month))' => 'calendar#index', :as => :calendar, :constraints => {:year => /\d{4}/, :month => /\d{1,2}/}, via: [:get]

并在我的日历索引过滤器上按该房间 ID 过滤?像这样的东西:

def index
  @month = (params[:month] || (Time.zone || Time).now.month).to_i
  @year = (params[:year] || (Time.zone || Time).now.year).to_i

  @shown_month = Date.civil(@year, @month)
  @event_strips = Appointment.event_strips_for_month(@shown_month)
  #Here is where I would filter by room id
  @filtered = @event_strips.find(params[:id])
end

我正在使用 Ruby 2 和 Rails 4。在此先感谢

4

1 回答 1

0

您可以添加一个查找选项

Appointment.event_strips_for_month(@shown_month)

喜欢

Appointment.event_strips_for_month(@shown_month,0, {})

最后一个哈希是你传递给 scoped() 的内容

例如。

Appointment.event_strips_for_month(@shown_month,0, {:conditions => "id == 1"})

这还没有经过测试,但这是你会做的。

您可以通过查看 https://github.com/elevation/event_calendar/blob/master/lib/event_calendar.rb来了解它是如何使用的

特别是在 events_for_date_range 方法中。

于 2013-10-01T03:06:09.683 回答