Публикации на тази страница:
- » Rails nice search
- » bgUrl api - ruby simple example
- » bgURL api - примерни - request и response
- » Как да прочетем rdoc, за инсталираните локално ruby gems?
- » MySQL - замяна съдържание на поле
- » Премахване на .svn директории
- » PHP - sql decode param variables
- » FeedBurner Api - извличане статистика за "feed"
- » Използване на константа, като име на модел
- » Генериране на RSS в Rails сайт/приложение
Rails nice search
Проблема: http://somehost.com/home/index?q=search_string
route:
map.q '/q/:q', :controller => 'home', :action => 'index', :q => nil
form:
<% form_tag({:controller => "home", :action => "search"}, :method => "get") do %> <%= text_field_tag :q %><br/> <%= submit_tag 'Търси' %><br/> <% end %>
controller:
def search redirect_to q_url(:q => params[:q]) end
Резултат: http://somehost.com/q/search_string
bgUrl api - ruby simple example
def get_bg_url(long_url) url = URI.parse("http://bgurl.org/api/links") req = Net::HTTP::Post.new(url.path) req.set_form_data({'website_url' => long_url}) http = Net::HTTP.new(url.host, url.port) response = http.start {|http| http.request(req) } doc = Hpricot::XML(response.body) (doc/:link/:permalink).first.innerHTML end
bgURL api - примерни - request и response
bgurl.org
request.xml
POST http://bgurl.org/api/links
<link> <website_url>http://www.sharesnippets.com</website_url> </link>
response.xml
<?xml version="1.0" encoding="UTF-8"?> <link> <website_url>http://www.sharesnippets.com</website_url> <permalink>http://bgurl.org/0eWb</permalink> </link>
Как да прочетем rdoc, за инсталираните локално ruby gems?
Стартирай:
gem server
Отвори:
http://localhost:8808/
MySQL - замяна съдържание на поле
update dbtable set field = replace(field,'search_string','replace_with ');
Премахване на .svn директории
Премахване на .svn директории
find ./ -name ".svn" -type d -exec rm -rf \{} \;
PHP - sql decode param variables
function sql_decode($param){ $s = $param; $s = str_replace("\\\\", "\\",$s); $s = str_replace("\\\"","\"", $s); $s = str_replace("\\'","'", $s); $s = str_replace("\\`","`", $s); $s = str_replace("\\","\\\\", $s); $s = str_replace("\"", "\\\"", $s); $s = str_replace("'", "\\'", $s); $s = str_replace("`", "\\`", $s); return $s; }
FeedBurner Api - извличане статистика за "feed"
app/models/feed_burner.rb
class FeedBurner include HTTParty base_uri 'feedburner.google.com' format :xml def self.get_feed_stats(uri) get('/awareness/1.0/GetFeedData', :query => {:uri => uri}) end ... end
Controller:
stats = FeedBurner.get_feed_stats("[feed_uri]")
config/environment.rb
... config.gem "httparty" ...
Използване на константа, като име на модел
Използване на константа/string като име на модел:
Hash с константи:
rtypes = {
...
"rapps"=>"RentApp",
"sapps"=>"SaleApp",
...
}
Използване като имена на модели:
rtypes.each_pair {|offer_type, model| offers = model.constantize.find :all ... }
Константата може и да не е с точното име на модела. Например SaleApp може да бъде sale_app, тогава става така:
offers = model.classify.constantize.find :all
Генериране на RSS в Rails сайт/приложение
Примерно генериране на RSS в Rails сайт/приложение. Примера е от кода на sharesnippets.com
Controller:
def rss begin user = User.find_by_login(params[:user]) @page_title = user.login + " at www.sharesnippets.com" @posts = Post.find :all, :conditions => {:private => false, :user_id => user.id}, :order => "created_at desc" respond_to do |format| format.xml { render :layout => false } end rescue flash[:notice] = 'Няма такъв потребител !' redirect_to root_url return false end end
View: rss.xml.builder
xml.instruct! xml.rss "version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/" do xml.channel do xml.title @page_title xml.link root_url xml.pubDate CGI.rfc1123_date(@posts.first.updated_at) if @posts.any? xml.description @page_title @posts.each do |post| xml.item do xml.title post.title xml.link url_for(:only_path => false, :controller => 'posts', :action => 'show', :id => post.permalink) xml.description post.body.gsub(/\n/, "<br />") xml.pubDate CGI.rfc1123_date(post.created_at) xml.guid url_for(:only_path => false, :controller => 'posts', :action => 'show',:id => post.permalink) xml.author post.user.login end end end end


а>
а>