分享 个人用 Rails 边学边做的一个社区的总结

yuanchunfa · 2013年08月24日 · 最后由 huihen 回复于 2014年08月11日 · 4042 次阅读

过年时期想在家里面做点事,先打算做个网站,于是参考 ruby china 和 rabel 两份源码弄起来。首页是一个接活宣传页,然后一个简易社区功能,不过没有等到同事一起来做,光杆司令也就没做了,又出去打工了,用 Unity3d 做做手游了。这网站也就闲置了,现在突然想到把首页宣传去掉,留下社区功能开源,希望对新手有些帮助。开发中间我在 ruby china 提了不少问题,得了很多人的帮助,我在这里感谢各位。总结经验教训有: 1、不要去追求小众,不成熟的东西,比如 slim,参考 ruby china 一个 ajax 回复效果,用 slim 来一直没搞定,最后觉得是 slim 的解析的硬伤,最后把这个 ajax 改成 erb 了,同时用两种模板引擎让我如鲠在喉。 2、不要到{wrap}bootstrap 买 themes,看起来好看,用起来又是一回事,而且跟 rails asset 整合麻烦。下载后都是些静态演示,很多压缩后的 css,js 文件,不好调试跟踪。是授人以鱼,而不是授人以渔。 3、如果是要一个网站,而不是学习的话,还是直接用 PHP 之类的,部署 PHP 的地方多,PHP 资源也很多。开始想一步到位,导致真正要做的事没去做。后面做一个项目,需要用到简单的后台管理,要部署简单,尝试用用 PHP 发现非常好,step by step 非常易用,你可以写个步骤,让不是专业的人完成。哦哦,这个是多么痛的领悟。 演示地址http://www.ycusrx.com/ 这个站点部署在 Appfog 上,每次上传更新空间都会删除掉,而且站点是国外,图片什么的速度就非常不理想了。我这个后面用了阿里云的 OSS,这两个暂时都免费的,挺好的部署组合。感谢 @huacnlee@Victor最后奉上 Git 地址https://github.com/yuanchunfa/ycusrx

PS:为什么最后两处粗体、的 markdown 格式不支持呢?

因为是在代码块里的

#1 楼 @jjym 把前面空行去掉是可以,谢谢

  1. 免费的部署方案,速度还是很快。。
  2. 为什么说 slim 很小众,我用起来感觉很爽,没有遇到必须 erb 的场景。
  3. 对于这样的站的样式设计真的有点麻木了。。😄
  4. 还是谢谢分享。。

appfog 免费套餐还可以绑定域名?

varnish +nginx +rails ?

#4 楼 @linsk 是的,免费也可以绑定域名

#3 楼 @small_fish__ 服务的的 ajax 我用 slim 怎么也搞不定

#5 楼 @yakczh 放到 appfog,不清楚他的部署情况,感觉像默认的 WEBrick。

#6 楼 @yuanchunfa 你是以前绑定的吧。现在貌似不可以绑定域名了

「 Apps limited to *.af.cm domains」

把 Slim 的问题放出来看看?作者在坛子里的

#10 楼 @xstmjh 把一个 erb 的服务端 ajax 能够用 slim 来实现就非常好呢。 create.js.erb:

<% if @comment.errors.blank? %>
<% @current_page = 1 %>
  if($("#replies").length == 0){
    location.href = location.href;
  }
  else {
    $("#replies .items").append('<%= escape_javascript(render("comment", :commentable => @commentable, :comment => @comment, :comment_counter => @commentable.comments_count, :display_edit => true)) %>')
    $("#replies").find(".total b").text('<%= @commentable.comments_count + 1%>');
    $("#replies .reply a.edit:last").css("display","inline-block");
    Topics.replyCallback(1,'<%= escape_javascript(@msg) %>');
  }
<% else %>
  Topics.replyCallback(0,'<%= escape_javascript(@msg) %>');
<% end %>

ggd #9 楼 @linsk 今年三月份的时间部署绑定的,后面就不清楚了。

text editor 是怎么解决的啊?

#13 楼 @cqcn1991 text editor 怎么了?

#14 楼 @yuanchunfa 额。好像也没有 rich text editor?只有一个上传图片……

#15 楼 @cqcn1991 恩,把 ruby-china 的这块拿过来的

- if @comment.errors.blank?
  - @current_page = 1
  | if($("#replies").length == 0){
  |   location.href = location.href;
  | }
  | else {
  |   $("#replies .items").append('#{ escape_javascript(render("comment", :commentable => @commentable, :comment => @comment, :comment_counter => @commentable.comments_count, :display_edit => true)) }');
  |   $("#replies").find(".total b").text('#{ @commentable.comments_count + 1 }');
  |   $("#replies .reply a.edit:last").css("display","inline-block");
  |   Topics.replyCallback(1,'#{ escape_javascript(@msg) }');
  | }
- else
  | Topics.replyCallback(0,'#{ escape_javascript(@msg) }');

试试这个?不过既然不是 HTML 用 slim 本来就没啥优势了吧……

#17 楼 @Kabie 正确用法是不要用 slim 来生成 javascript。

一不小心搜到此帖 发觉楼主的网站很强大

需要 登录 后方可回复, 如果你还没有账号请 注册新账号