0

私はRubyonRailsを初めて使用します。ラジオボタン内でコントローラーアクションを呼び出すことは可能ですか?

<%= 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

最初のラジオボタンを選択するとき、コントローラー内のメソッドを表示する必要があります。正しく機能しています。2番目のラジオボタンを選択すると、コントローラー内の別のメソッドに移動する必要があります。どうすれば可能ですか?

4

3 に答える 3

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
于 2013-02-28T08:51:21.470 に答える
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
于 2013-02-28T08:46:23.877 に答える
0

これを行うためのよりクリーンな方法は、

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

application.js

$(function() {

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

});

私はあなたのルートとコントローラーについて少しカジュアルかもしれませんが、このソリューションが好きなら、あなたはそれを理解するでしょう。

于 2013-03-01T06:52:08.907 に答える