2011-07-09 151 views
0
創建表單

我的應用程序的route.rb文件中包含該命名空間:的Rails 3態關聯的子模型

namespace :admin do 
     resources :index 
     resources :posts do 
      resources :images 
     end 
     resources :statics 
    end 

我使用多態協會
Post模型:has_many :images, :as => :imageable
圖像模式:belongs_to :imageable, :polymorphic => true
我開了必要的移民領域。

當我打電話@ post.images,沒有錯誤信息,我認爲這種關係正常工作。
我想,我的問題是在圖片上傳的形式,我用這樣的代碼:(後/編輯動作)

[there is post edit form] 
<% form_tag admin_post_images_url(@post) , :multipart => true do %> 
    <%= file_field :imageable, :photo, :size => 40 %> 
    <input type="submit" name="send" value="upload!" /> 
<% end %> 

的形象是成功的上載,但imageadble_id和_type犯規填補。有什麼不對(我認爲與admin_post_images_url(@post)部分),有什麼問題?

更新:
當我添加手動創建imageadble_id和類型,並列出其工作,所以assotiation是做工不錯。

+0

上傳圖片時會傳遞什麼參數? – corroded

+0

[1分[35mAREL(0.2ms的)[0米INSERT INTO'images'('created_at','photo_file_name','imageable_type','imageable_id','photo_content_type','updated_at','photo_file_size','title')VALUES ('2011-07-09 18:20:36','截圖2011-06-25 at 5.10.25 PM(2).png',NULL,NULL,'image/png','2011-07-09 18:20:36',266818,NULL) – logi

+0

我的意思是提交表單時傳遞的參數:「參數:{:imageabletype =>} etc etc – corroded

回答

0

嘗試這樣:

<% form_for([:admin, @post, @image], :multipart => true) do %> 

這可能不完全是工作,但應該讓你開始正確的道路。無論如何,如果您使用模型,而不是「form_tag」,則需要「form_for」。