0

我是在軌道上使用紅寶石的新手。是否可以在單選按鈕內調用控制器操作。在軌道上使用紅寶石的單選按鈕中的呼叫控制器方法

<%= form_tag :action => 'show' do %> 
    <strong>Select device: </strong> 
    <br></br> 
    <strong>Chose: </strong><%= radio_button_tag :name,:time, @time, :onclick => "this.parentNode.submit();"%>Time 
    <%= radio_button_tag :name,:graph%>Graph 

當選擇第一個單選按鈕我必須去顯示controller.its內的方法正常工作。選擇第二個單選按鈕我也必須轉到控制器內的其他方法。怎麼可能?

+0

你必須添加一些JavaScript,將改變窗體的動作屬性。 – jvnill 2013-02-28 08:43:46

回答

1

我會做到以下幾點:

形式會導致同樣的動作爲兩個單選按鈕。

裏面的動作,根據所選擇的收音機,它會調用正確的行動:

def show 
    if params[:name] == :time 
    self.action_for_time 
    elsif params[:name] == :graph 
    self.action_for_graph 
    end 
end 

protected 

def action_for_time 
    # ... 
end 

def action_for_graph 
    # ... 
end 
0

嘗試:

<%= radio_button_tag :name,:graph, :onclick => "window.location.href=<YOUR_PATH>" %>Graph 

你可以寫(例如,你想去主頁)

<%= radio_button_tag :name,:graph, :onclick => "window.location.href=/home/" %>Graph 
    # or 
<%= radio_button_tag :name,:graph, :onclick => "window.location.href=<%=home_path%>/" %>Graph 
+0

onclick =>「window.location.href = 」,在YOUR_PATH中,我們可以在控制器內寫入控制器或函數的路徑嗎? – chinchu 2013-03-01 04:01:18

+0

更新了答案 – shweta 2013-03-01 06:11:56

0

,我認爲這樣做將是一個更清潔的方式,

<div id="my-select" > 
-- 
<<view code>> 
-- 
</div> 

的application.js

$(function() { 

    $("#my-select").on("click",function() { 
    <<do-what-you-want>>; 
    }); 

}); 

我可能對你的路線和控制器有點隨意,但如果你喜歡這個解決方案,你w我會弄清楚。