我正在创建一个跟踪用户和成就的应用程序(想想,xbox live等)。这些表通过连接表链接。我希望在索引上有一个搜索表单,用户可以输入用户名称,并在新页面中加载用户获得的所有成就列表。我不完全确定如何在索引上设置此搜索表单,以实际搜索用户表并将结果返回到新页面。任何帮助将不胜感激。如果您需要更多信息,我会很乐意提供。Rails搜索表单
5
A
回答
5
下面是一些框架代码,让你开始根据你所说的需要开始。我希望这是有用的。
对于搜索位,你可以做这样的事情在你的索引视图:
<%= form_for User.new, :url => "search" do |f| %>
<%= f.label :name %>
<%- f.text_field :name %>
<%- end %>
在你的控制器:
def search
q = params[:user][:name]
@users = User.find(:all, :conditions => ["name LIKE %?%",q])
end
,并在您的搜索视图:
<%[email protected] do |user| %>
Name: <%=user.name %>
<%- user.achievements.each do |achievement| %>
<%= achievement.name %>
<%- end %>
<%- end %>
当然,您需要确保用户和成就模型正确链接:
class User << ActiveRecord::Base
has_many :achievements
end
2
有很多教程和事物的这个如:
http://blog.devinterface.com/2010/05/how-to-model-a-custom-search-form-in-rails/
看的东西是在Rails3中开始,由他们提供的初始教程每一个基本解释解释你如何设置一个新的控制器/模型。这个例子只有数千个解释同样的问题。
这是一个非常广泛的不同的事情,你可以做到这一点。基本上,你必须把一些代码在控制器:
- 它处理搜索(包括ActiveRecord的东西,或任何技术,你用它来访问你的模型)
- 其中设置一些必要的变量为搜索表单
设置两条路线等...它的广泛和完全覆盖,即使是基本的官方rails3教程。
0
这是基于searchlogic的应用是非常有用的,你可以搜索通过任何你想要的
https://github.com/railscasts/176-searchlogic
0
你可能要检查出洗劫的宝石。 https://github.com/activerecord-hackery/ransack
相关问题
- 1. Rails:搜索表单在boostrap导航栏
- 2. Rails - 搜索表单返回错误
- 3. Rails Elasticsearch预测搜索表单建议
- 4. Rails表单搜索或创建
- 5. Ruby on Rails:在表单上搜索collection_check_boxes
- 6. Rails的相关搜索表单
- 7. 带有acts_as_taggable_on的搜索表单(Rails 3)
- 8. Rails搜索表单无法工作
- 9. Ruby on Rails:搜索表单 - 多个搜索字段
- 10. ruby on rails实现搜索多个关系的搜索表单
- 11. 简单搜索和Rails
- 12. 搜索多个表格Rails
- 13. Symfony搜索表单
- 14. PHP搜索表单
- 15. RoboBrowser搜索表单
- 16. JavaScript搜索表单
- 17. CodeIgniter搜索表单
- 18. 搜索表单的搜索结果
- 19. 用搜索表单搜索HTML DOM树
- 20. Rails 4:简单的搜索表单与错误的重定向
- 21. Ruby on Rails - 简单表单自动完成关联搜索
- 22. Rails中的简单搜索表单错误
- 23. rails 4简单的搜索表单,供用户查找对方
- 24. 如何让搜索表单实际执行搜索查询(在Rails中)
- 25. Rails搜索表单返回错误找不到产品'id'=搜索
- 26. Rails + SQLite3:搜索?
- 27. SImple Rails搜索
- 28. Rails Ajax搜索
- 29. Rails简单搜索从Railscast不显示
- 30. 在Rails中搜索标签的订单
谢谢,但该教程没有给出一个非常明确的解释,至少对我来说,它需要你使用formtastic。感谢谷歌搜索,但如果它可以分解更容易让我理解,再次,我会很感激。 – SalsaSalsa
有没有任何翻译的链接? –
@AliQanavatian你可以简单地点击右侧的英语作为语言 – fyr