【发布时间】:2016-01-23 00:02:37
【问题描述】:
我有一个带有 Post 模型和 Calendar 模型的 Rails 4 应用程序:post belongs_to calendar 和 calendar has_many posts。
Post 模型有一个自定义的:date 属性。
帖子以两种不同的视图显示:
- 作为标准
Calendars#Show视图中的列表 - 作为自定义
Calendars#Calendar_view视图中的日历
我想要实现的是,让用户只需在Calendars#Calendar_view 视图中单击日历的一个单元格即可创建新帖子,也就是说转到Posts#New 视图,其中新帖子的:date 字段将预先填写单元格中的日期。
我在calendar_view 视图中使用simple_calendar gem 来显示帖子,代码如下:
<%= month_calendar events: @posts do |date,posts| %>
<%= content_tag :div, class: "new-event", data: {date: date} do %>
<%= date.strftime('%e') %>
<% posts.each do |post| %>
<div class="single_event">
<%= link_to post.subject, post_path(post) %>
</div>
<% end %>
<% end %>
<% end %>
我在我的posts.coffee 文件中使用此代码来检测on click 事件并从单元格中获取日期:
$(".new-event").on "click", (e) ->
date = $(this).data("date")
window.location = "/posts/new?post[date]=#{date}"
然后,在我的Posts#New 操作中,我使用@post = @calendar.posts.new(post_params) 从表单中的单元格中预加载日期。
问题是:当我在calendar_view 视图中单击一个单元格时,什么也没有发生。
我在 Chrome 中检查了控制台,没有出现错误。
知道这里出了什么问题,或者至少我应该从哪里开始调试?
【问题讨论】:
标签: javascript ruby-on-rails ruby-on-rails-4 coffeescript calendar