【问题标题】:sti and form for problem with rails 3rails 3 问题的 sti 和 form
【发布时间】:2010-12-22 22:17:56
【问题描述】:

这类似于STI and form_for problem,但那里给出的答案与 rails 3 不兼容,并给出了弃用警告。但是,如果我尝试使用新语法,我会得到一个非常混乱的结果。这就是问题所在。

event_enquiry 是一种查询,在旧语法中我会这样做

<%= form_for( :event_enquiry, @enquiry, :remote => true, :url=>{:id=>@enquiry.id,:action=>:build_provider_versions}

这会生成预期的路径 /event_enquiries/1/build_provider_versions 在日志中我看到 2010-12-22 22:00:11 +0000 开始 POST "/event_enquiries/1/build_provider_versions" 为 127.0.0.1

但这给出了弃用警告

DEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead. 

虽然是新语法

<%= form_for(  @enquiry, :as => :event_enquiry,:remote => true, :url=>{:id=>@enquiry.id,:action=>:build_provider_versions}

似乎生成相同的路由,并且在日志中我得到完全相同的消息 在 2010-12-22 22:01:58 +0000 开始 POST "/event_enquiries/1/build_provider_versions" 为 127.0.0.1 这条路线显然不存在!

ActionController::RoutingError(没有路由匹配“/event_enquiries/1/build_provider_versions”):

我来来回回地经历了这件事,看不到发生了什么。有谁知道发生了什么?

显然,我现在很高兴回到旧语法,但我有一种讨厌的感觉,这里有些东西坏了......还是我只是愚蠢?

【问题讨论】:

    标签: routing ruby-on-rails-3 form-for sti


    【解决方案1】:

    添加

     :html => {:method => :put}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2011-07-26
      • 1970-01-01
      • 2011-12-31
      相关资源
      最近更新 更多