我有一个简单的表格,我想用它来搜索姓氏:
<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
如果它有一个姓氏参数,那么它会搜索,如果不是,它只会显示所有可用的。当我调试此操作时,在发布搜索表单后调用它时,我从未看到任何参数。
此搜索表单基于自动生成的登录表单(有效),所以我有点困惑。有什么想法吗?
答案 0 :(得分:1)
尝试在控制器中发布不同的操作,或将索引操作重命名为[model] _index。
Rhodes似乎想把传递给索引操作的查询参数搞得一团糟。
我使用您的代码进行了快速测试,如果您将控制器方法更改为“index_new”,则会成功传递参数。