Rails 3为Polymorphic Association的子模型创建表单

时间:2011-07-09 16:46:34

标签: ruby-on-rails ruby-on-rails-3

我的应用程序的route.rb文件包含此命名空间:

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

我使用了Polymorphic Association
发布模型: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工作正常。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

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

这可能无法正常工作,但应该让您开始走正确的道路。无论如何,如果你使用模型而不是“form_tag”,你需要“form_for”。