2011-02-13 5 views
1

달력에 다음과 지난달 도움이 필요하면 얼마나보기에 일정을 메신저레일 (3) 내 달력은 내가 이전 월이 다음 달 추가 할 지금 현재 달 동안 쉬었되고있다

<table border="1" width="70%"> 
    <th colspan=7 align=center><%= @month %> <%= @year %></th> 
    <tr width ="10%"> 
    <% Date::DAYNAMES.each do |days_of_week| %> 
     <td align=center><%= days_of_week %></td> 
    <% end %> 
    </tr> 


    <% @tasks.in_groups_of(7, ' ') do |row_tasks| %> 
     <tr> 
     <% for task in row_tasks %> 
      <!-- if Staament here --> 
      <td><%= task %></td> 
      <!-- Else Staament here --> 
     <% end %> 
     </tr> 
    <% end %> 

    </tr> 
</table> 

이 는 컨트롤러 난 내가 올바른 정보를 얻고 있었다 확인하고 그 중 일부를 사용하고 있었다 필요가 없습니다 여분의 물건을 많이가 알고

def calendar_of_events  
    @year = Date.today.year 
    month = Date.today.month  
    @month = Date::MONTHNAMES[month] 
    begin_day = Date.today.beginning_of_month 
    @begin = begin_day 
    @last = Date.civil(@year, month, -1) 
    @blank_day= Date.today.beginning_of_month.wday 
    if @blank_day >= 0 
     @day = @blank_day - 1 
    else 
     @day = 0 
    end 
    @last_day_of_month = @last.mday 
    @first_day_of_month = @begin.mday 
    @blank_days_of_month = ('').to_a 
    for i in [email protected]  
     @blank_days_of_month2 = (' ').to_a 
     @blank_days_of_month1 = @blank_days_of_month 
     @blank_days_of_month = @blank_days_of_month2 + @blank_days_of_month1 
    end 
    @days_of_month = (@[email protected]_day_of_month).to_a 
    @tasks = @blank_days_of_month + @days_of_month  
    end 

입니다. 내가 필요로하는 것은 다음을 클릭하고 다음 달과 지난 달 동안 얻는 것입니다. 지금 내가 필요로하는 것은 컨트롤러에 대한 명령을 얻는 것입니다. 제가 1 년이나 1 년 정도 걱정할 수 있습니다 -이 작업이 도움이된다면 도움이 될 것입니다!

답변

1

Javascript 라이브러리를 사용하려면 Ajax를 사용하면됩니다. 보기에 두 개의 링크가 있고 그 둘에 대한 click 이벤트에 함수를 연결하십시오. 예를 들어,

<a href="javascript:void(0);" class="left" id="prev"> </a> 
<a href="javascript:void(0);" class="right" id="next"> </a> 

당신이 자바 스크립트 라이브러리에 대한 프로토 타입 JS를 사용하는 경우 :

document.observe("dom:loaded", function() { 
    $('prev').observe('click', function(event){ 
     url = '/fetch?m=prev&d=' + d 
     new Ajax.Request(url, { method: 'get' }); 
     ... 
    }); 

    $('next').observe('click', function(event){ 
     url = '/fetch?m=next&d=' + d; 
     new Ajax.Request(url, { method: 'get' }); 
     ... 
    }); 
}); 

를 우리가 구축하는 URL에, d는 우리가 작업을 가져 전달하려는 날짜가 될 수 있습니다. 이 요청을 처리하기 위해 컨트롤러에 fetch 작업을 가질 수 있습니다. 작업 경로에 추가하십시오.

희망이 도움이됩니다.

+0

눈치 챘을 지 모르지만 메신저가 아닌 레일 3을 사용하고 있습니다. –