【发布时间】:2015-10-01 11:48:28
【问题描述】:
我正在尝试修改我的脚本,我正在从 rails 2.3 迁移到 rails 3.1,但我遇到了一个奇怪的问题。我看到当我使用这样的路径助手时
在 rails 3.1 中我遇到了一个异常,但是 rails 2.3 它曾经可以工作,我所说的工作是指当我向路径助手传递值并且 order.customer_id 为 nil 时,它会生成一个创建新客户的路径,但是在 rails 3.1我看到它产生了一个异常,下面是我在 rails 3.1 中看到的错误的描述
helper.link_to customer_email, app.store_customer_path(store,order.customer_id) ,当 order.customer_id 为空白时,我在控制台上收到如下异常
以下是我在 rails 2.3 中观察到的错误
ActionController::RoutingError: store_customer_url 无法从 {:controller=>"customers", :action=>"show", :store_id=#<object>}
。但是当我加载一个网页时,我看到我生成了一个路径来创建一个新客户。
这是我的相关 routes.rb 代码
resources :stores do
resources :customers do
collection do
get :get_customers, :download, :csv_template
end
match :upload, :import, :map, :on => :collection
member do
get :more
end
resources :dropship_profiles
resources :address
end
end
但是在 Rails 3.1 中
在控制台上我看到异常,当从浏览器加载时我也看到异常
我无法理解这一点,这让我很困惑,谁能帮忙,谢谢。
【问题讨论】:
-
您是否尝试过在控制台中将有效值传递给您的助手。它有效吗?
-
是的,有效值有效,无效值抛出异常,但在网页上有效,我的意思是它显示了创建新记录的路径
-
你在网页上是什么意思...不管代码在哪里执行...如果它有有效值,它会工作,否则它会中断。
-
网页意味着当我在浏览器中加载页面时,如果客户 ID 为 nil,它会向我显示创建新客户的路径,但在控制台中却没有,它会中断并引发异常
-
store_customer_path 应该是有效的,无论你传递什么值......所以只要 store_customer_path 是有效的,它应该可以工作。你能分享你的 routes.rb 代码。 ?
标签: ruby-on-rails ruby-on-rails-3 routes