<%= render partial: "home/show" %> <!-- 查找 home/_show.html.erb -->
<%= render template: "home/show" %> <!-- 查找 home/show.html.erb -->
:plus1:
你的 server 使用 webrick?
贴出调用的代码和 log
使用 string
,symbol
,int
赋值都是可以的
Conversation.create status: :active
Conversation.create status: "active"
Conversation.create status: 0
Conversation.create status: Conversation.statuses[:active]
# 这三种写法都是有效的,其中 Conversation.statuses[:active] 等效 0
[]
的本身是一个方法名。http://ruby-doc.org/core-2.2.3/Array.html#method-i-5B-5D
访问的时候,会 check 这个下标是否在这个数组里面。
定义一个[]
方法。
class A
def [](index)
"this is a [] method"
end
end
A.new[1] #=> "this is a [] method"
A.new["index"] #=> "this is a [] method"
localtunnel
这个可以从 log 看出问题。
/usr/local/lib/ruby/gems/2.1.0/gems/execjs-2.6.0/lib/execjs/runtimes.rb:48:in `autodetect': Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
没有安装 JavaScript runtime, 可在这里 https://github.com/rails/execjs
挑一个,建议安装 nodejs
#1 楼 @kingwkb ActiveJob 功能虽然功能有限,但更易用。比如:
class ActiveJobPlus < ActiveJob::Base
queue_as :plus
#before_enqueue do |job|
#end
#after_enqueue do |job|
#end
#before_enqueue do |job|
#end
#before_perform do |job|
#end
#after_perform do |job|
#end
end
class YourJob < ActiveJobPlus
def perform(args)
end
end
这样可以对共通部分进行处理。
rails c -e data_99
rails s -e data_99
多个数据库,建议使用 establish_connection
之前在公司里,保存历史数据都是使用触发器
来实现。
#4 楼 @hxh1246996371
不过在 ActiveRecord::Base 中有一些 configurations
, connection_config
等方法,如定config
方法容易引起理解歧义,建议定义类似 kexin_config
这样感觉好些。
# app/models/kexin_db_base.rb
class KexinDbBase < ActiveRecord::Base
self.abstract_class = true
ActiveRecord::Base.establish_connection Rails.application.config.kexin_db
end
# app/models/apm_sell_mem.rb
class ApmSellMem < KexinDbBase
self.table_name = "mems"
{
:my_age=> :age,
:my_name=> :name
}.each do |k,v|
alias_attribute k, v
end
.....
end
#2 楼 @viciousstar 是的,只要带有 :
都是一个 Symbol
->
是定义一个 lambda, 功能和 lambda{}
一致。
if: ->(order) { order.payment_required? }
是一个 hash 参数。具体这个参数有什么作用,可以在
https://github.com/spree/spree/blob/master/core/app/models/spree/order/checkout.rb#L128 查到
if local_assigns[:custom_name] ...
或
if defined?(:custom_name) ...
# routes.rb
mount Api::Dispatch => '/'
# api/dispath.rb
prefix '/api'
#2 楼 @chairy11
有可能是你的 passenger_ruby
配置有问题,如是使用 rvm 还需要做一些改变。
https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_ruby
另外 rvmsudo passenger start -e production -p 80 --user="root"
和 nginx 的 passenger 启动是不同的,一个是standalone
,一个是作为 nginx 的插件的形式。
添加passenger_app_root /app/www/my_project/current
https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_app_root
grape 使用好像没有发现类似的问题。你先在 log 中,看看 post 后,grape 解析后的参数。
使用 inner_html
方法来获取code
tag 内容后处理。
doc.at("#__cnt_0_19").inner_html
可以看出 #box-coolsite
在 <code id="__cnt_0_19" ...
内,并被注释了,你可以先获取<code
内的 inner_html
,然后对里面的数据进行处理。
這個地方應該使用 serialize
class Role < ActiveRecord::Base
serialize :rule, JSON
end
,得看流量
Hash[1,2,3,4] #=> {1 => 2, 3 => 4 }
1 2554 25.5426% git
2 1480 14.8015% cd
3 1033 10.331% vim
4 857 8.57086% ls
5 421 4.21042% ssh
6 355 3.55036% bundle
7 330 3.30033% rails
8 329 3.29033% rvm
9 257 2.57026% rm
10 250 2.50025% brew
11 160 1.60016% rake
12 135 1.35014% cap
13 114 1.14011% mina
14 114 1.14011% gem
15 80 0.80008% ruby
16 74 0.740074% more
17 64 0.640064% npm
18 61 0.610061% ping
19 56 0.560056% cp
20 54 0.540054% ps