2015年6月6日 星期六

weibo + omniauth

利用OAuth2协议将网站接入到新浪微博

http://hansay.com/2012/06/22/integrate-sina-weibo-with-oauth2/

Ruby on Rails中实现Omniauth第三方登录最终解决方案(豆瓣、QQ、微博第三方登录)

http://www.douban.com/note/411359006/



devise_omniauth_oauth2_tqq_douban_weibo.rb
https://gist.github.com/krongk/b3a9ab3750df04d621a0

OmniAuth Weibo OAuth2




https://gist.github.com/krongk/aedf1566ad6a8ffdba9f

微博登录
http://open.weibo.com/webmaster/deploy/weibologin?siteid=384898092


Devise - part 2 - Use Omniauthable module

http://chouandy.logdown.com/posts/245192-devise-part-2-use-omniauthable-module


example: IMportant

https://github.com/caiwenhn2008/rails4blog/blob/master/app/models/user.rb


def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.provider = auth.provider
user.uid = auth.uid
email = auth.info.email
user.email = email || user.uid.to_s + "@wilsonblog.com"
user.password = Devise.friendly_token[0,20]
end
end

2015年5月20日 星期三

cloudflare + heroku

In Heroku, setting cName for the app

 heroku domains:add www.example.com
 heroku domains:add example.com


In Cloudflare, Adding
CNAME    @                     example.herokuapp.com
CNAME    WWW             example.herokuapp.com


將你的DNS伺服器改成CloudFlare的兩組DNS伺服器,等於是讓你DNS給它代管,如此才有辦法藉由DNS的查詢來將你的網站。

CloudFlare Nameservers

For your records, here are the CloudFlare nameservers you've been assigned.
NScloe.ns.cloudflare.com
NSduke.ns.cloudflare.com
http://blog.soft.idv.tw/?p=1110&page=2  














2015年5月7日 星期四

2015年3月27日 星期五

migrate database from sqlite3 to postgresql on development of rails 4

http://stackoverflow.com/questions/6710654/how-do-you-easily-change-from-sqlite-to-postgresql-in-rails

http://railscasts.com/episodes/342-migrating-to-postgresql

http://www.gotealeaf.com/blog/how-to-install-postgresql-on-a-mac


download postgresql  from postgresql.org

1
initdb /usr/local/var/postgres
install  postgresql


$ createuser f3 -d -s
$ createdb -Of3 -Eutf8 f3_development
$ createdb -Of3 -Eutf8 f3_test
Update the Gemfile
gem 'sqlite3'
gem 'pg'
gem 'taps'
$ bundle
Update database.yml
#development:
#  adapter: sqlite3
#  database: db/development.sqlite3
#  pool: 5
#  timeout: 5000

development:
  adapter: postgresql
  encoding: unicode
  database: f3_development
  pool: 5
  username: f3
  password:

#test:
#  adapter: sqlite3
#  database: db/test.sqlite3
#  pool: 5
#  timeout: 5000

test:
  adapter: postgresql
  encoding: unicode
  database: f3_test
  pool: 5
  username: f3
  password:
Start the taps server on the sqlite database
$ taps server sqlite://db/development.sqlite3 user password
Migrate the data
$ taps pull postgres://f3@localhost/f3_development http://user:password@localhost:5000
Restart the Rails webserver
$ rails s
Cleanup the Gemfile
#gem 'sqlite3'
gem 'pg'
#gem 'taps'
$ bundle

2015年3月22日 星期日

friendly_id + 中文顯示

http://waynechu.logdown.com/posts/205700-rails-web-site-no-longer-displays-only-id

rails generate friendly_id
rails generate migration add_slug_to_products slug:string:uniq
rake db:migrate
class Product < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :slugged
end
接著到config/initializers/friendly_id.rb下把自動查找的功能打開,將config.use :finders這段解除註解就可以了。
(不打開finders也可以,但就必須要把Product.find(params[:id])的地方改寫成Product.friendly.find(params[:id])
class Product < ActiveRecord::Base
 
  # 原本是input.to_s.parameterize,但是parameterize只支援英文跟數字,所以改用babosa的to_slug
  def normalize_friendly_id(input)
    input.to_s.to_slug.normalize.to_s
  end

2015年3月19日 星期四

Adding Custom Fields to Devise User Model in Rails 4

http://www.jacopretorius.net/2014/03/adding-custom-fields-to-your-devise-user-model-in-rails-4.html

 create the migration
class AddFieldsToUsers < ActiveRecord::Migration
  def change
    add_column :users:first_name:string
    add_column :users:last_name:string
  end
end

Customizing the RegistrationsController


creating our own registrations controller (which extends Devise) and then customizing these methods as we choose.

class RegistrationsController < Devise::RegistrationsController
 
  private
 
  def sign_up_params
    params.require(:user).permit(:first_name:last_name:email:password,:password_confirmation)
  end
 
  def account_update_params
    params.require(:user).permit(:first_name:last_name:email:password,:password_confirmation:current_password)
  end
end

Now we need to tell Devise to use our registrations controller - we can do this in ourconfig/routes.rb file.
devise_for :users:controllers => { registrations: 'registrations' }

2015年2月5日 星期四

first upload to github and deploy to heroku

1.Github上新增一個 repository


git init

Initialized empty Git repository in .git/

$ git add .

$ git commit -m "my first commit"
 
heroku create

heroku git:remote -a APP_NAME

git push heroku master