用于轨道问题的sti和形式3

时间:2010-12-22 22:17:56

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

这与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

开始发布“/ event_enquiries / 1 / build_provider_versions”for 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”):

我一直在这里来回走动,看不到发生了什么。有谁知道发生了什么?

显然我现在很高兴退回旧的语法,但我有一种令人讨厌的感觉,这里有些东西被打破了......或者我只是愚蠢?

1 个答案:

答案 0 :(得分:0)

只需添加

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