如何用Datamapper和Sinatra实现ruby语言的简易搜索功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计326个文字,预计阅读时间需要2分钟。
我对Ruby和后端开发都比较新手。虽然这么说,我正尝试创建一个简单的搜索表单。我使用Sinatra作为框架,Datamapper作为ORM。做这个的最佳方式是什么?以下是我的架构,我希望搜索。
架构:- 使用Sinatra框架- 使用Datamapper进行ORM- 简单的搜索表单
我对 Ruby和后端开发一般都是新手.话虽这么说,我正在尝试创建一个简单的搜索表单.我使用Sinatra作为框架,使用Datamapper作为我的ORM.做这个的最好方式是什么?下面是我的架构我希望搜索操作同时搜索磁贴和类别.require 'sinatra' require 'datamapper' DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/cal.db") class Event include DataMapper::Resource property :id, Serial property :title, String property :text, Text property :contact_name, String property :contact_email, String property :location, String property :event_start_time, String property :event_end_time, String property :category, String property :created_at, DateTime property :approved, Boolean, :default => false end DataMapper.auto_upgrade! post '/search' do @results = Event.all erb :layout end
============
layout.erb
<form action="/search" method="post"> <input type="text" name="query"/><br /> <input type="submit" /> </form> <% if @results %> <table> <%@results.each do |r|%> <tr valign="top"> <td><%=r.title%></td> </tr> <%end%> </table> <% end %> 最基本的搜索查询可能是这样的:
@events = Event.all(:title.like => "%#{params[:query]}%") | Event.all(:category.like => "%#{params[:query]}%")
本文共计326个文字,预计阅读时间需要2分钟。
我对Ruby和后端开发都比较新手。虽然这么说,我正尝试创建一个简单的搜索表单。我使用Sinatra作为框架,Datamapper作为ORM。做这个的最佳方式是什么?以下是我的架构,我希望搜索。
架构:- 使用Sinatra框架- 使用Datamapper进行ORM- 简单的搜索表单
我对 Ruby和后端开发一般都是新手.话虽这么说,我正在尝试创建一个简单的搜索表单.我使用Sinatra作为框架,使用Datamapper作为我的ORM.做这个的最好方式是什么?下面是我的架构我希望搜索操作同时搜索磁贴和类别.require 'sinatra' require 'datamapper' DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/cal.db") class Event include DataMapper::Resource property :id, Serial property :title, String property :text, Text property :contact_name, String property :contact_email, String property :location, String property :event_start_time, String property :event_end_time, String property :category, String property :created_at, DateTime property :approved, Boolean, :default => false end DataMapper.auto_upgrade! post '/search' do @results = Event.all erb :layout end
============
layout.erb
<form action="/search" method="post"> <input type="text" name="query"/><br /> <input type="submit" /> </form> <% if @results %> <table> <%@results.each do |r|%> <tr valign="top"> <td><%=r.title%></td> </tr> <%end%> </table> <% end %> 最基本的搜索查询可能是这样的:
@events = Event.all(:title.like => "%#{params[:query]}%") | Event.all(:category.like => "%#{params[:query]}%")

