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 回答