1

上點擊新紀錄我有一個Rails應用程序4用Post模型和Calendar模式:postbelongs_to一個calendarcalendarhas_manypostsRails的4×simple_calendar寶石:在日曆中創建細胞

Post模型具有自定義:date屬性。

帖子被顯示在兩個不同的觀點:

  • 作爲列表在標準Calendars#Show視圖
  • 作爲定製Calendars#Calendar_view查看日曆

我所試圖實現的,是讓用戶只需點擊Calendars#Calendar_view視圖中的日曆單元格即可創建新帖子,也就是說可以轉到Posts#New視圖,其中:datef新職位的領域將預先填寫單元格的日期。

我使用在該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中檢查了控制檯,並且沒有出現錯誤。

任何想法這裏怎麼回事,或者至少在哪裏我應該開始調試呢?

回答

2

看看這個例子:https://github.com/excid3/clickable-simple_calendar

您可以使用此JS來觸發重定向。我是錯的位置重定向,這個人是你想要什麼:

jQuery -> 
    $(".calendar-day").on "click", -> 
    date = $(this).data("date") 
    location.href = "/meetings/new?meeting[start_time]=#{date}" 

這所有掛鉤到HTML日曆:

<%= month_calendar do |day| %> 
    <%= content_tag :div, class: "calendar-day", data: {date: day} do %> 
    <%= day %> 
    <%# Whatever else you want in here %> 
    <% end %> 
<% end %> 

而且有一個小變化會議的新動作使用strong_params預先填充參數(如果缺失,也不會拋出錯誤)。

這應該做的伎倆!