2010-10-12 45 views
0

我有一個帶有url選項的表單。在form_for中使用URL選項

- form_for [@organization, @video], :url => organization_media_videos_with_session_path(@organization), :html => { :multipart => true } do |f| 

該URL具體而言,是我寫這裏幫手:

def organization_media_videos_with_session_path(organization) 
    session_key = ActionController::Base.session_options[:key] 
    organization_media_videos_path(organization, session_key => cookies[session_key], request_forgery_protection_token => form_authenticity_token) 
end 

我的問題是這樣的..

在我工作的生產形式HTML看起來像這樣:

<form method="post" id="new_video" enctype="multipart/form-data" class="new_video dirtyform" action="/organizations/470/media/videos"> 

在我的non-工作測試服務器,形式HTML看起來像這樣:

<form method="post" id="new_video" enctype="multipart/form-data" class="new_video" action="/organizations/1/media/videos?_hq_channel_session=BAh7CjoQX2NzcmZfdG9rZW4iMTVrM3NyWkMzVGk5OGJFNXR6WTZ1V3djWWtyUThnS01OaFlDZVBsUzA5SEU9IhV1c2VyX2NyZWRlbnRpYWxzIgGAODQ4NjQwMzViZTNkODkyYmQ1NmNkY2U3ZTcxOTBhYzc2ZGFhMWNlMGQ0ZjVhOGFlMDZjODUyZGU5N2MzMzM5MGFhOTRkNmZlNmNhMGQ1N2Y3YmU4NzY2OWJjYzk1ZDhiOWVkNzQ3OGQxOTJjMGViMDdiZWQ1MGI0NmZhODQ4YWUiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7AAY6CkB1c2VkewAiGHVzZXJfY3JlZGVudGlhbHNfaWRpBjoPc2Vzc2lvbl9pZCIlZDk4Mjg0MTBkOGZiMGJkOTYxNDMyZmY5NzNkMGE1NDY%3D--c46c8a31da47833661393e399510802b2924f128&amp;authenticity_token=5k3srZC3Ti98bE5tzY6uWwcYkrQ8gKMNhYCePlS09HE%3D"> 

怎麼會這樣?

+0

你確定這不僅僅是一個關於你的幫手的問題嗎?你有沒有嘗試過在form_for上下文中使用你的幫助器? – Skilldrick 2010-10-12 11:46:02

+0

@Skilldrick,我試圖解決讓那個URL解析像我的生產。它是我解決表單中一個更大的問題時沒有發佈到正確URL並返回302錯誤的唯一提示。 – Trip 2010-10-12 12:03:28

回答

0

這看起來非常像你的會話祕密。我想這與你的環境設置有關,它在dev中傳遞URL中的密鑰而不是在生產環境中。

查看this瞭解更多詳情。

+0

應用程序代碼的唯一區別在於前端AJAX的東西。該前端工作是否會影響顯示的網址? – Trip 2010-10-12 12:01:50