rails:3473
From: Ayumu Aizawa <ayumu.aizawa@g...>
Date: Wed, 8 Sep 2010 16:12:12 +0900
Subject: [rails:3473] form_forの引数について
あいざわです すごく基本的な質問なのですが、form_forの引数に関する質問です。 <動作環境> $ ruby -v ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux] $ rails -v Rails 2.3.8 <状況> routes.rb、モデルEntry、モデルCommentを下記のように設定し、 http://localhost:3000/entries/1/comments/1 のようにCOMMENTSテーブルのデータにアクセスしています。 $ cat config/routes.rb ActionController::Routing::Routes.draw do |map| map.resources :entries, :has_many => :comments map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' end $ cat app/models/entry.rb class Entry < ActiveRecord::Base has_many :comments end $ cat app/models/comment.rb class Comment < ActiveRecord::Base belongs_to :entry, :counter_cache => true end <結果> 新規にCommentオブジェクトを登録したり、更新したりしようとしたときにviewでform_for 登録画面のビューで、form_forメソッドに渡す引数を <% form_for @comment do |f| -%> とすると、 undefined method `comments_path' for #<ActionView::Base:0xb6cc6e90> と表示され、 <% form_for [:entry, @comment] do |f| -%> とすると正常に登録ができるようになりました。 更新画面で同じようにすると、 undefined method `entry_comment_path' for #<ActionView::Base:0xb6d6ffcc> というエラーになったので、 <% form_for [:entry, @comment], :url => {:action => 'update'} do |f| %> に変更したところ正常に動きました。 しかし、この差があるため登録画面と更新画面のフォームをパーシャルに出すことができません。 親子関係にあるリソースの子の方へのアクセスをもうちょっと上手にやる方法があるのではないかと おもっているのですが、こういう場合のよい書き方を教えてください。 ---- Ayumu AIZAWA -- ML: rails@r... 使い方: http://QuickML.com/
-> 3473 2010-09-08 09:12 [ayumu.aizawa@g... ] form_forの引数について 3474 2010-09-08 10:35 ┗[masaki@h... ]