我按照 RailsCasts 教程使用自动完成功能进行了简单的搜索,但它不起作用。 :(
查看/供应商/索引:
<% form_tag vendors_path, :method => 'get' do %>
<%= text_field_with_auto_complete :vendor,
:name,
{},
{:method => :get, :class => 'textbox'} %>
<%= submit_tag "Search", :name => nil %>
<% end %>
</div>
<%= @searchvendor.id %>
<%= @searchterm %>
我添加了 @searchterm 和 @searchvendor.id 作为验证步骤。
所以这应该调用 Controller =>供应商,操作=>索引:
def index
@searchterm = params[:vendor][:name]
@searchvendor = Vendor.search('checkpoint')
针对供应商/型号创建搜索方法如下:
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
else
find(:all)
end
输出?
@searchterm 确实显示了输入的值,该值在 URL 中显示为供应商[name]=?
@searchvendor.id 是一个长字符串,@searchvendor.name 显示错误,名称不是方法。
我被难住了。请帮忙...?
教程链接:
最佳答案
您不应该将@searchterm 传递到您的Vendor.search 方法中吗?每次都通过“检查点”可能不会成功。
@searchvendor 将在您执行 find(:all) 时包含一个数组。您需要迭代数组并对每个项目执行 .name。
关于ruby-on-rails - 如何根据RailsCasts教程在rails中进行简单搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827914/