2013-02-10 33 views
0

網址:/evaluations行動的form_for - >顯示

我已經做了的形式來選擇特定項目(一期)

class EvaluationsController < ApplicationController 
    def index 
    @periods = Period.all 
    end 

我的形式:

<% form_for XXXXX do %> 
    <%= collection_select(:period, :period_id, @periods, :id, :fullname) %> 
    <%= submit_tag("Valider") %> 
<% end %> 

我想當被提交時(如果選擇的時間段是3),進入/評估/ 3。

當我手動去/評估/ 3它的作品就像一個魅力,但我真的不知道如何寫form_for通過提交表單來正確的網址。

回答

1

簡單的方式

提交時間ID來處理數據,然後重定向到行動,它處理 evaluations/:id用的action:id作爲參數。

redirect_to <youraction>(:period => @id) 

這應該可以做到。

沒那麼簡單方式

如果您想您的網頁上動態地改變某些事情了數據提交後 - 調用方法和使用javascript

respond_to do |format| 
    format.js 
end 

在javascript中的反應,你可以把任何你迴應想要 - 簡單的重定向或腳本,這將動態地改變頁面。隨你便。

希望它有幫助。

+0

太棒了!這就是我一直在尋找的 – Max 2013-02-10 03:16:43

0

你需要使用一些JavaScript來更新形式

$('#period_period_id').change(function() { 
    $('form').attr('action', '/evaluations/' + this.value); 
}) 
+0

真的嗎?沒有辦法做到這一點在鐵軌? – Max 2013-02-10 01:37:06

+0

是的。當頁面已經加載時,rails無法更改生成的html。由於您將表單的URL基於period_id,因此在呈現頁面之前,無法期望rails知道它。 – jvnill 2013-02-10 01:39:12

+0

是的,沒錯。那麼原始表單標籤呢? form_for XXXXX呢? – Max 2013-02-10 01:46:15