2013-07-07 68 views
0

我使用的form_for助手與網址選項是這樣的:路徑幫手產生錯誤的URL

<%= form_for @security_user, url: security_users_manage_securities_path(@security_user), 
       html: { class: 'default', method: :put, id: 'security-default-form' } do |f| %> 

security_users_manage_securities_path(@security_user) 

返回我下面的字符串:

/security_users_manage_securities.105 

當我需要以下一個:

/security_users_manage_securities/105 

有沒有人未知道爲什麼@security_user參數的ID與「串聯。'而不是'/'?

回答

1

嘗試以單數模式使用此幫手,例如

security_users_manage_security_path(@security_user) 

這應該產生時,你想獲得網址列出

/security_users_manage_securities/105 

複數使用,那麼你不應該通過任何PARAMS:

security_users_manage_securities_path 

回報:

/security_users_manage_securities 
0

我遇到過這個問題 已經。

這是可能的,你必須定義爲「security_users_manage_security」您的路線與收集像

collection do 
    post :security_users_manage_securities 
end 
or 
post :security_users_manage_securities, :on => collection 

如果您在終端打rake routes | grep security_users_manage_securities命令,然後你會發現路線security_users_manage_securities這樣的事情

controller_name/method_name(.:format) controller_name#method_name 

沒有選項可以傳遞url中的任何參數。

如果您必須使用參數製作url,然後使用member定義url。

如果你必須通過參數在這種情況下也,那麼你定義網址有些像

security_users_manage_securities_path(:user_id => @security_user) 

現在的網址,將產生類似controller_name/method_name?user_id = XXX