0

URL : /evaluations

特定の項目(期間)を選択するフォームを作成しました

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

送信時にフォームが /evaluations/3 に移動することを希望します (選択した期間が 3 の場合)。

手動で /evaluations/3 に移動すると魅力的に機能しますが、フォームを送信して正しい URL に移動するための form_for の書き方が本当にわかりません。

4

2 に答える 2

1

簡単な方法

期間IDを送信してデータを処理 evaluations/:idしてから:id、パラメーターとして処理するアクションにリダイレクトします。

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

これでうまくいくはずです。

それほど単純な方法ではありません

データが送信された後にページ上の何かを動的に変更したい場合-メソッドを呼び出し、javascriptで応答します

respond_to do |format|
  format.js 
end

javascriptの応答では、ページを動的に変更する単純なリダイレクトまたはスクリプトなど、必要なものを何でも配置できます。それはあなた次第です。

それが役に立てば幸い。

于 2013-02-10T02:09:07.127 に答える
0

actionフォームを更新するには、JavaScript を使用する必要があります。

$('#period_period_id').change(function() {
  $('form').attr('action', '/evaluations/' + this.value);
})
于 2013-02-10T01:34:30.130 に答える