2007年10月12日金曜日

スケジューラー 続き

教本を進めていくと、月間表示を作成したので
「scaffoldで生成されたlist.rhtmを削除する」と言う項目に従って
list.rhtmlを消すと、エントリを削除できるリンクが無くなってしまった。
教本では後々付け加えるのかもしれないけれど、ちょっと挑戦してみようと思って作業を始める。

まずはedit.rhtmlに


<% form_tag :action => 'destroy', :id => @schedule do %>
<%= submit_tag '削 除' %>
<% end %>



としてみると。簡単に削除ができた。
「削除しますか?」の確認画面が欲しいと思い:confirmを使うためlink_toにして
(最初はform_tagに入れようとしていたけど、うまくいかなかった)



<%= link_to("Destroy",{ :action => "destroy", :id => @schedule }, :confirm => "Are you sure you want to delete this entry?", :post => true %>



と追加してみる。ヨシ、できた。

「Are you sure you want to delete this entry?」にタイトルを入れたくなった。
:confirm => "『 タイトル:#{@schedule.title} 』のエントリを削除しますか?"
でOKだった。



private
def set_file_name
@file = params[:schedule][:file_name]
params[:schedule][:file_name] = @file.original_filename
end




の部分でoriginal_filenameが見付からないというエラーが出たが、
start_form_tagの書き方が教本の頃より変わったらしい。

<%= start_form_tag('create', :multipart => true) %>
と書き直してOK。

次はなぜか
Parameterの"id"が"update"になる謎。


ActiveRecord::RecordNotFound in SchedulesController#edit
Couldn't find Schedule with ID=update

workspace/scheduler/app/controllers/schedules_controller.rb:80:in `find_schedule'


で止まっているし、idに"update"が入るというのはスクリプトの打ち間違えかな
週明けに格闘してみようと思います。



□ Javaから見たRuby on Rails

0 件のコメント: