rails:3372
From: naopontan <naopontan@g...>
Date: Fri, 29 Jan 2010 10:29:20 +0900
Subject: [rails:3372] Re: 複数のレコードを更新する画面でのルート定義
naopontanです。
返答が遅れて申し訳ございません。
英語は苦手ですが、少しづつ分かってきました。
結果、以下の様なルーティングを記述する事で目的は達成できました。
# 表示
map.schedules 'schedules/:yyyymm',
:controller => 'schedules',
:action => 'index',
:yyyymm => /\d{6}/,
:conditions => { :method => :get }
# 編集
map.edit_schedule 'schedules/:yyyymm/edit',
:controller => 'schedules',
:action => 'edit',
:yyyymm => /\d{6}/,
:conditions => { :method => :get }
# 更新。更新後は編集にリダイレクト
map.connect 'schedules/:yyyymm',
:controller => 'schedules',
:action => 'update',
:yyyymm => /\d{6}/,
:conditions => { :method => :put }
ここまでで理解は深まったのですが、これだと年月が省略できない事に気付きました。
年月が省略された場合は「当月」としたい欲が出てきたので、もう少し勉強してみます。
ありがとうございました。
2010年1月21日17:02 okkez <okkez000@g...>:
> okkez です。
>
> 2010年1月21日16:41 naopontan <naopontan@g...>:
>> ルーティング定義や REST(?)がよく理解できていないので教えて欲しいです。
>>
>> 例えば、日付毎に管理される schedules テーブルがあったとします。
>> 普通だと routes.rb にて
>> map.resources :schedules
>> で1件づつ管理しますよね。
>> これを1件づつではなく、1ヵ月単位で画面表示したいのです。
>>
>> ◆画面イメージ
>> +-- 2010年1月 ---------+
>> | ←前月 次月→ |
>> |----------------------|
>> | 2010/1/1 [散歩 ] |
>> | 2010/1/2 [ ] |
>> | ・ |
>> | <保存> |
>> +----------------------+
>>
>> これを実現するにあたり、疑問が幾つか出てきました。
>>
>> 疑問1:
>> URLは http://localhost:3000/schedules/201001 と出来ればいいな。
>> けど routes.rb にどう書くんだろう?
>> また、この場合は複数形じゃない方がいいんだろうか?
>> (私のスキルでは http://localhost:3000/schedules?date=201001 が限界)
>
> とりあえず
> http://railsapi.com/doc/rails-v2.3.5/classes/ActionController/Routing.html
> を読んでみてはいかがでしょうか。
>
>>
>> 疑問2:
>> コントローラーに実装するアクションは2つで良いと思うのだが、
>> 名前は何がいいんだろうか?
>> - 画面表示するアクション⇒ index or show or edit ?
>> - 更新するアクション⇒ これは update でいいのかな。
>>
>
> 他のアプリケーションのコードを読んでみてはいかがでしょうか。
> http://github.com/fdv/typo とか。
>
>
>
> --
> okkez
> okkez000@g...
>
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
>
--
ML: rails@r...
使い方: http://QuickML.com/
3367 2010-01-21 08:41 [naopontan@g... ] 複数のレコードを更新する画面でのルート定義 3368 2010-01-21 09:02 ┗[okkez000@g... ] -> 3372 2010-01-29 02:29 ┗[naopontan@g... ]