rails:1554
From: Kazuhiko <kazuhiko@f...>
Date: Thu, 24 Aug 2006 00:59:30 +0900
Subject: [rails:1554] Re: カレンダーの日付のリンク化
かずひこです。 At Thu, 24 Aug 2006 00:31:19 +0900, Masaya Konta wrote: > コンタと申します。 > よろしくお願いします。 こんにちは。こちらこそよろしくお願いします。 > ■やりたいこと > 「はじめようRuby on Rails」のカレンダーの日付をクリックすると、newに遷移し、 > datetimeをクリックした日付のものにしたい。 それはいい感じですね。 > ■やってみたこと > link_to date.mday.to_s とすることで、日付部分をリンクとしたのですが > どのように'new'にパラメータを渡したらよいかわかりません。 > schedules_controller.rbのdef newのところで > @schedule = Schedule.new(datetime => 2006-08-08) > とすれば固定の日付は表示されるのですが、 > やはりクリックした日付をここに反映したく。。 変更する部分は二つあります。 * 日付をクエリーに含めた new へのリンクを作る * コントローラの new メソッドで、日付のクエリーがあればそれをセットする ユーザまわりのない Step5 あたりでの差分で示すと、それぞれこんな感じでど うでしょうか。 --- app/views/schedules/month.rhtml (revision 698) +++ app/views/schedules/month.rhtml (working copy) @@ -20,6 +20,8 @@ cell_text << "<br />\n" cell_text << link_to(h(schedule.title), :action => 'show', :id => schedule) end + cell_text << "<br />\n" + cell_text << link_to('New', :action => 'new', :date => date) [cell_text, cell_attrs] end %> --- app/controllers/schedules_controller.rb (revision 698) +++ app/controllers/schedules_controller.rb (working copy) @@ -16,6 +16,9 @@ def new @schedule = Schedule.new + if params[:date] + @schedule.datetime = Time.parse(params[:date]) rescue nil + end end def create 上の差分で、New というリンクが /schedules/new?date=2006-01-02 みたいなリ ンクになります。クエリーの設定のしかたは、少し上の edit へのリンクで :id => schedule としているのとほとんど同じですね。 そして下の差分で、その date= の中身を parse して @schedule.datetime にセッ トするようになっています(parse に失敗したら nil にしてあります)。 以上、参考になれば幸いです。 -- かずひこ <http://www.fdiary.net/> 「恋とハックはアジャイルが命!」 -- ML: rails@r... 使い方: http://QuickML.com/
1553 2006-08-23 17:31 [mkonta@g... ] カレンダーの日付のリンク化 -> 1554 2006-08-23 17:59 ┗[kazuhiko@f... ] 1562 2006-08-24 14:40 ┗[mkonta@g... ]