0

姓を検索するために使用したい単純なフォームがあります。

<form method="POST" action="<%= url_for :action => :index %>">
  <label for="surname" class="itemLabel">Search Surname</label>
  <input type="text" id="surname" name="surname" class="" <%= placeholder("Surname") %> />
  <input type="submit" value="Search"/>
</form>

コントローラーのインデックス メソッドには、次のコードがあります。

def index   
    if @params['surname'].nil? or @params['surname'].empty?
      @fencers = Fencer.find(:all) 
    else
      @fencers = Fencer.find(:all, :conditions => {:surname => @params['surname']})
    end
    render :back => '/app'
end

姓のパラメーターがある場合は検索し、そうでない場合は利用可能なすべてを表示します。このアクションをデバッグすると、検索フォームを投稿した後に呼び出されたときにパラメーターが表示されません。

この検索フォームは、(動作する) 自動生成されたログイン フォームに基づいているため、少し混乱しています。何か案は?

4

1 に答える 1

1

コントローラー内の別のアクションに投稿するか、インデックス アクションの名前を [model]_index などに変更してみてください。

Rhodes は、インデックス アクションに渡されるクエリ パラメータをいじりたいようです。

コードを使用して簡単なテストを実行しました。コントローラー メソッドを「index_new」に変更すると、引数が正常に渡されます。

于 2012-06-20T02:22:27.927 に答える