#1 楼 @themorecolor 多谢指点,不过多 save 一次也不致错 我改成这样,就可以了
def create
params.permit!
@place = Place.find(params[:place_id])
@explaination = @place.explainations.create(params[:explaination].permit(:title, :speaker, :speaker_title, :like))
@explaination.topic_ids = params[:explaination][:topic_ids]
@explaination.save
redirect_to @place
end
我猜测,在 create 那一句,explaination 的 id 还没有确定,无法同时往 explainations_topics 插入记录。必须得先把 explaination 生成了,再往他身上绑 topics。
得到了这么多素不相识的朋友的热情帮助,十分感激!
测试了一天,我来总结一下:
#13 楼 @hsiss #16 楼 @zfjoy520 #17 楼 @kgen #18 楼 @kikyous #19 楼 @cassiuschen 你们是对的,我不知道有「ssh 断掉以后,用户进程就没有了」这件事情,改成后台运行问题就没有了。感谢你们推荐 tmux,这正是我需要的。
#10 楼 @qhwa #11 楼 @zj0713001 #12 楼 @chaixl #15 楼 @cxh116 感谢你们的分析指导,我检查过你们说的 log,没有有价值的发现。我现在的看法是 512M 内存跑我这个简单的 rails 应用没有问题,可以参考 @lang1pal 对剩余内存的解释。
@mouse_lin,我的情况和域名没关系,还没绑域名呢
再次感谢楼上各位!
#3 楼 @zj0713001 守着看了会内存,内存也不会随访问有大变化,一直都是剩 100 多 M 的样子,这样有问题么
total used free shared buffers cached
Mem: 490 370 119 0 18 206
-/+ buffers/cache: 144 345
Swap: 0 0 0
#4 楼 @jimrokliu 我知道这个不应该用在生产环境中。但我是新手,以前没搞过 Server 开发,而且需求也简单,想先让他能用着,以后再来改。
谢谢 @vkill,插件还没来得及看。有一个不用插件的方法是这样的,给每个 Model 都显式写个 as_json_options 方法
class Place < ActiveRecord::Base
has_many :guides, :dependent => :destroy
def as_json_options
@options={}
@options[:except] ||= [:created_at, :updated_at]
@options[:include] ||= [:guides => Guide.as_json_options]
return @options
end
def as_json(options={})
super(as_json_options)
end
end
class Guide < ActiveRecord::Base
belongs_to :place
has_many :stories, :dependent => :destroy
def Guide.as_json_options
options = {}
options[:except] ||= [:created_at, :updated_at, :keywords]
options[:include] ||= [:stories => Story.as_json_options]
return options
end
end
谢谢楼上各位 #3 楼 @doitian ,重写 as_json 就对了。
参考 http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/