RoRバージョン:2.3.2
Rubyバージョン:1.8.5
config/routes.rbで次のように設定して、
---------------------
map.resources :person
---------------------
app/views/persons/show.rhtmlに、次のように記述したファイルを作成しました。
---------------------------------------------------------
<p>ここはshowアクション</p>
<p><%= link_to 'edit_person_path', edit_person_path(1) %>
<p><%= link_to 'person_path', person_path(1) %></p>
<p><%= link_to 'person_path', person_path(1), :method => 'delete' %></p>
----------------------------------------------------------
それぞれ作成されるリンクは、editアクション、showアクション、destroyアクションへのものとなりますが、最後のリンクだけは:methodオプションを指定して作成する必要があります。
http://guides.rubyonrails.org/routing.html#urls- …
を見ると、
link_to 'person_path', person_path(1)
とするだけでdestroyアクションへのリンクが作成できるような感じで読み取れましたが、どうしてもその通りにするとshowアクションへのリンクになってしまいます。
(showアクションと曖昧なので、それだけではできるわけありませんが。。)
で、質問ですが、どのようにすれば:methodオプション、CRUD形式、名前付きルーティングを使わずに(つまりRestfulに)destroyアクションを呼び出すリンクを作成できますか?
無理ぽいのであれば、そういった回答も頂けるとうれしいです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>>(ちなみにlv4uさんの抜粋だと、Regular Routesのようですが、その場合だと:method => :deleteの記述は必要ないですね。
)ちょっと試してみました。その部分を削除すると、エラーは出ませんが、削除処理が実行されませんので必要なようです。
>>サンプルプログラムが、オンライン上にあるのであれば、そのURLを教えて頂けないでしょうか。
以下のブログにあるPDFです。ちょっと前に話題になった「Four Days on Rails」を、日本の方がRails 2.0に対応されたものです。
http://rails.to/pages/4daysonrails2
これは、元が英文の「Four Days on Rails」を日本語訳にされ、さらにRails 2.0対応になおされたドキュメントです。このドキュメントは、Railsが自動生成した、ありがちな機能のRailsソースをブラッシュアップして、使えるWebのアプリに仕上げるまでが記述されているので、まとまったソースコードにはなっていません。PDFのドキュメント内にソースが分散して載っています。
ブログには
---------------------------------------------------------
Rails 2.0で導入されたRESTfulな部分を損なわないようにしたつもりですが、RESTクライアントでの検証はまだ行っていません。
---------------------------------------------------------
と書かれていますように、一部にちゃんと2.0対応になっていないコードもあるようです。ただ、サンプルのカテゴリ画面は、追加・変更・削除が問題なく動作しています。
この回答への補足
ありがとうございます。
現在少しずつ読んでいます・・。(他の作業の合間に)
具体的に解決した時(適切と思える記述が見つかるか、書かれていなかった場合は単に高望みしていただけとみなす。)に“お礼”欄に改めて記入致します。
No.1
- 回答日時:
RoRバージョン:2.3.2の場合、show.rhtmlではなく、show.html.erbにファイル名がなると思うのですが。
そして、同様に、質問者さんの削除のリンクの書き方も、RoRバージョン2の書き方ではないように思えます。なので、状況がよく判らない面があるのですが、・・・。
私の場合、練習で打ち込んだサンプルプログラムの削除部分は、以下のようになっていました。
RoRバージョン:2.3.2
Rubyバージョン:1.8.6
<<------------------ indes.html.erb 抜粋 ---------------------
<%= link_to(image_tag('delete.png'), { :action => 'destroy', :id => category.id },:confirm =>'Are you sure you want to delete this category?', :method => :delete) %>
>>------------------ indes.html.erb 抜粋 ---------------------
なにか参考になればいいのですが。
全く回答がなく、困っていましたので、回答頂けるだけでもありがたいです。(求めているのは明確な回答だけでなく、ヒントでもあればと思っています。)
.rhtmlになっているのは、なんとなく.html.erbよりもrhtmlのほうがスッキリするという理由から無意識にしちゃってました。混乱させてスミマセン。(でも本当はXMLとHTMLを使い分けたいなら前者の記述が好ましいんですよね)
Railsのバージョンによってルーティングの記述方法が異なるわけではなく、2.3.2では、適切にいくつかつのルーティング方法を使い分ける(この中の1つがRestful Routing)ので、あまりバージョンは気にする必要はないような気がしています。(ちなみにlv4uさんの抜粋だと、Regular Routesのようですが、その場合だと:method => :deleteの記述は必要ないですね。)
サンプルプログラムが、オンライン上にあるのであれば、そのURLを教えて頂けないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VisualStudioからVScodeへの移植
-
パソコンに何かが勝手にダウン...
-
A-oneのラベル屋さんについて
-
管理者として実行を毎回すると...
-
ラベル屋さんと言うソフトのフ...
-
Excel実行時エラー-2146959355?
-
EXCEL-VBAでコマンド...
-
iMac OS Mojave 10.14.6で iMov...
-
ソフトの「ビルド バージョン ...
-
latexでのエラー
-
「管理者として実行」された場...
-
VBA中断モードの解除
-
Windows10 で青鬼を遊びたいの...
-
Railsで作ったものにdispatch.c...
-
VBnet、Imports Microsoft.Offi...
-
エクセルVBA、ステップモードと...
-
PC版のMinecraftが応答なしにな...
-
VB.NETでボタンのクリックイベ...
-
web上からシェルを走らせる方法
-
PSP改造について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VisualStudioからVScodeへの移植
-
テキストエディタの作成法を教...
-
パソコンに何かが勝手にダウン...
-
A-oneのラベル屋さんについて
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
latexでのエラー
-
ラベル屋さんと言うソフトのフ...
-
VB.NETでボタンのクリックイベ...
-
エクセルVBA、ステップモードと...
-
管理者として実行を毎回すると...
-
パソコンのスクリーンセーバー...
-
XAMPPのインストールについて
-
プログラム実行中に強制停止さ...
-
Windows10 で青鬼を遊びたいの...
-
ソフトのバージョンについて
-
VBA コントロールパネルの機能...
-
eclipseで、「ポート番号が使用...
-
【至急】サクラエディタのファ...
-
EXCEL-VBAでコマンド...
おすすめ情報