ubuntu, ror, jQuery, css, website memo
太嫩, 沒啥心得, 用來紀錄每天學的
2010年4月20日 星期二
[Ptt][心得] Restful下遇到params[:id]含有.的解法
在restful的前提下, 遇到class的to_param是字串, 而剛好某筆
紀錄的to_param欄位含有.
一般情形下會發生錯誤, 因為restful會把.後的東西當成format
這時的解法, 變成要在routes.rb中的xxx.resources加上參數
ex:
<br /> map.resources :categories, :requirements => {:id => /.*/}<br />
paramter change permanently, header status
<br /> if params[:id] != @episode.to_param<br /> headers["Status"] = "301 Moved Permanently"<br /> redirect_to episode_url(@episode)<br /> else<br /> @comment = Comment.new(:episode => @episode)<br /> respond_to do |format|<br /> format.html<br /> format.rss<br /> end<br /> end<br />
2010年4月16日 星期五
Practical Rails Social Networking Site memo (2)
<br />#Ch10<br />module ApplicationHelper<br /> def yes_no(bool)<br /> ...<br /> end<br /> def tag_cloud(tags, classes)<br /> max, min = 0, 0<br /> tags.each do |tag|<br /> max = tag.count if tag.count > max<br /> min = tag.count if tag.count < min<br /> end<br /> divisor = ((max - min) / classes.size) + 1<br /> tags.each do |tag|<br /> yield tag.name, classes[(tag.count - min) / divisor]<br /> end<br /> end<br />end<br /><br /><% tag_cloud @tags, %w(tag1 tag2 tag3 tag4 tag5) do |name, css_class| %><br /><%= link_to name, tag_path(name), :class => css_class %><br /><% end %><br /><br /><br /><br />
2010年4月15日 星期四
Practical Rails Social Networking Site memo
<br />#Ch2<br />def to_param<br />"#{id}-#{permalink}"<br />end<br /><br />def show<br />@page = Page.find(params[:id].to_i)<br />end<br /><br />#Some database servers (including MySQL) will automatically do this conversion for you. However,PostgreSQL and some others do not, so it is a good idea to add this to your controllers. You could also overridean ActiveRecord method<br /><br /><br /><br />#Ch3<br />module LoginSystem<br /> protected<br /> def is_logged_in?<br /> @logged_in_user = User.find(session[:user]) if session[:user]<br /> end<br /><br /> def logged_in_user<br /> return @logged_in_user if is_logged_in?<br /> end<br /><br /> def logged_in_user=(user)<br /> if !user.nil?<br /> session[:user] = user.id<br /> @logged_in_user = user<br /> end<br /> end<br /><br /> def self.included(base)<br /> base.send :helper_method, :is_logged_in?, :logged_in_user<br /> end<br />end<br /><br /><br />map.show_user '/user/:username',:controller => 'users',:action => 'show_by_username'<br />map.resources :users, :member => { :enable => :put }<br /><br /><br /><ul><%= render :partial => 'role', :collection => @user.roles %></ul><br /><h2>Roles available:</h2><br /><ul><%= render :partial => 'role', :collection => (@all_roles - @user.roles) %></ul><br /><br /><br />#Ch4<br />def self.up<br /> create_table :categories do |t|<br /> t.column :name, :string<br /> end<br /> news_category = Category.create(:name => 'Site News')<br /> change_column :articles, :category_id, :integer, :default => news_category<br />end<br /><br />def self.down<br /> change_column :articles, :category_id, :integer, :default => 0<br /> drop_table :categories<br />end<br /><br />def get_http_auth_data<br /> username, password = nil, nil<br /> auth_headers = ['X-HTTP_AUTHORIZATION', 'Authorization', 'HTTP_AUTHORIZATION',<br /> 'REDIRECT_REDIRECT_X_http_AUTHORIZATION']<br /> auth_header = auth_headers.detect { |key| request.env[key] }<br /> auth_data = request.env[auth_header].to_s.split<br /><br /> if auth_data && auth_data[0] == 'Basic'<br /> username, password = Base64.decode64(auth_data[1]).split(':')[0..1]<br /> end<br /> return [username, password]<br />end<br /><br />@request.env['HTTP_ACCEPT'] = 'application/xml'<br />@request.env['Authorization'] = 'Basic ' + Base64::b64encode('editor:12345')<br />
2010年4月6日 星期二
check timezone valid
<br />module TimeFunc<br /> def self.included(base)<br /> base.class_eval do<br /> base.extend Methods<br /> end <br /> end <br /> <br /> module Methods<br /> def check_timezone_legal(timezone)<br /> raise IllegalTimeZone unless ActiveSupport::TimeZone::ZONES.map(&:name).include?(timezone)<br /> end<br /> end<br />end<br />
較新的文章
較舊的文章
首頁
訂閱:
文章 (Atom)