#3 楼 @460411234 Heroku 部署真正的 Ruby China 我也不会
嗯,有的主题还行,有的确实勉强。这是 Bootswatch 主题随机的。
http://ihower.tw/rails3/ecosystem.html
@ihower 总结的 Ruby on Rails 生态圈
只是觉得这种开源汇总的创意挺好,要说价钱,怎能和当年 Ubuntu 免费全球发 CD 的大气比呢:D
#8 楼 @ttsaon 在 facebook 上没收到你的消息呀。 twitter: @zhangjingqiang
#6 楼 @ttsaon 你先参考一下这个吧: https://github.com/zhangjingqiang/facebook-ruby/blob/master/app.rb
这是较旧的一个版本,使用mogli,现在创建 facebook 应用时给的是koala的例子。
可以这样联系我: http://fb.com/zhangjingqiang
facebook 的应用我开发很多。
顺便做下广告: 这是我一周内开发的应用(PHP),在日本地区每月活跃用户两万人: facebook 战斗力鉴定 APP 这是我一个月内开发的应用集(Ruby),几乎把所有社交媒体做个遍。尚未完全公开: facebook 应用集
#7 楼 @jialezhang 这个例子是这样处理的: app/models/user.rb
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
if user = self.find_by_email(data.email)
user
else # Create a user with a stub password.
self.create!(:email => data.email, :password => Devise.friendly_token[0,20])
end
end
app/controllers/users/omniauth_callbacks_controller.rb
def facebook
# You need to implement the method below in your model
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
sign_in_and_redirect @user, :event => :authentication
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
写共通方法的我没试过,但这个例子很好(twitter+facebook+google): /app/models/user.rb
class User < ActiveRecord::Base
def self.from_omniauth(auth)
find_by_provider_and_uid(auth["provider"], auth["uid"]) || create_with_omniauth(auth)
end
def self.create_with_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["info"]["name"]
end
end
end
/app/controllers/sessions_controller.rb
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url, notice: "Signed in!"
end
(来自:http://railscasts.com/episodes/304-omniauth-identity?view=asciicast)
http://zhangjingqiang.tumblr.com/post/28318572989/mongodb-devise-omniauth-cancan
这个参考一下吧,facebook 的例子,原理一样。
确保你在 facebook app 中填入的 url 和你实际程序的 url 一致。比如开发环境和产品环境不同,端口号也要注意。这点 twitter 要宽松些。
等都有不同的含义,优雅地讲不能随便取一个就算了的。 就单独记录一个用户的名称的话,推荐用 name 参考 omniauth-identity 以及其 RailsCast 。
protected
# Cancan example def ckeditor_authenticate authorize! action_name, @asset end
# Set current_user as assetable def ckeditor_before_create_asset(asset) asset.assetable = current_user return true end end
* `cancan` 参照 [wiki](https://github.com/ryanb/cancan/wiki/Defining-Abilities)
用 Module.const_defined?
可以确认 rails console
启动时加载的定没定义的类。
# 在 rails console 使用 irb 的时候
Module.const_defined? :IRB
# 在 rails console 使用 pry 的时候
Module.const_defined? :Pry
这样 rails console
执行时返回 true
,rails server
执行时返回 false
,可以判定。
提问者把问题补充了,我简单翻译一下:
现在在表中设置了动态的检测员作为监视对象,但是想排除 rails console 的时候监视对象。
# Migration
class CreateObserveTable < ActiveRecord::Migration
def self.up
create_table observe_tables do |t|
t.string :table_name
end
end
end
# Fixture
ObserveTable.create{ :table_name => "users"}
ObserveTable.create{ :table_name => "user_profiles"}
# Observer
class OperationLogObserver < ActiveRecord::Observer
if 只想在从服务器启动时执行
observe ObserveTable.all.map{|table| table.table_name.classify.to_sym}
end
def after_save
#do something
end
end
现知道这样的判定方法
if defined?(Mongrel) or defined?(WEBrick)
# 作为服务器的处理
else
# 作为一个脚本处理
end
但用Passenger
时,这样的做法并不起效
defined?(Passenger)
找好方法。
我想这个问题的意思是:
如果执行了
rails server
rails console
的操作,从哪里可以判断执行了。
建的时候分层,然后在 routing 里自由映射。
今天也列出一个资源,数量比这是少多了。
http://rubyistonrails.tumblr.com/post/21908893405/ruby-on-rails
PS:那不是本人的主 Tumblr 博客,今天为了弄个 Ruby on Rails 列表单开的一个:)
@huacnlee 再增加一个可以自定义 URL 的判断就更好了。 文件:social-share-button.coffee
window.SocialShareButton =
...
share : (site, title) ->
url = encodeURIComponent(location.href)
title = encodeURIComponent(title)
...
false
的share : (site, title) ->中加上url参数,参数为空时用location.href。 这样更灵活。期待下一版本中加入。
用 Rails 的话,有专门的 Action Mailer。 http://guides.rubyonrails.org/action_mailer_basics.html#sending-emails-with-attachments
validates :password, presence: { on: :create}, confirmation: { allow_blank: true }, length:{maximum:20,minimum:6}
在 Gemfile 里添加两行
gem 'execjs'
gem 'therubyracer'
再次执行。
看了个人资料页,佩服得不得了。 模特 + 技术者 + 大学生,堪称完美。 喜欢的话竟然是“拉面”。
我旁边的日本人说 義塾 这样的大学有很多优秀的学生。 很多日本技术者也都想和她一起开发项目呢:XD
另外, http://fb.dev-plus.jp 这个网站不错,也是一个重要的信息。
这个自称世界上最美的导航,居然无视 Ruby!
#16 楼 @dreamrise Yasuhiro Matsumoto http://mattn.github.com/zencoding-vim/
装 rails.vim 的话,用:RV 或:RS 分屏挺好,可以对照。
日本人的专心程度、精益求精的精神的确是世界上数一数二的。 在日本的大小书店里,很多貌似古老的工具书却翻新几版来出版。Vim、Emacs 之类最近又有新书(150 技)发行。 他们做事很专一,做一件事是要有始有终的。 但整体感觉似乎没有中国人快乐。压力产生压抑。 所以,各有好处坏处。
从软件的角度说,我们做的精细度不如他们,可以在量上拼一拼。用他们的话说,中国分母大。