越来越发现,我的每个项目中都需要类是 Ruby China 或 V2EX 这样的论坛功能,用于用户反馈讨论什么的,之前一直是拷贝代码来实现。
最近将 Homeland 改成了可以嵌入到任何项目的 Gem,它可以像 Devise 一样直接签入到任何系统中(目前只有 Mongoid 支持,后面会实现 ActiveRecord)。
https://github.com/huacnlee/homeland
加入 gem Gemfile
gem "homeland"
然后
$ rails g homeland:install
还需要调整一下 application.html.erb
里面有连接的地方
before:
<%= link_to "Home", root_path %>
<%= link_to "Posts", posts_path %>
after:
<%= link_to "Home", main_app.root_path %>
<%= link_to "Home", main_app.posts_path %>
routes.rb
里面加入:
mount Homeland::Engine, :at => "/bbs"
application.js 里面引入
/*
*= require homeland
*/
application.css 里面引入
/*
*= require homeland
*/
然后你就可以输入 /bbs 打开论坛了
如果你想自己调整 View 结构的话,你可以用这个命令把 View 生成出来:
$ rails g homeland:views
然后修改 app/views/homeland/ 里面的文件
安装完运行后,点击发布新帖,报下面这个错误,怎么弄啊? NoMethodError in Homeland::TopicsController#new
undefined method `require_user' for #Homeland::TopicsController:0xbb3a5a0
/Users/SanviLu/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.8/lib/active_support/inflector/methods.rb:230:in `block in constantize': uninitialized constant User (NameError)
1.改了代码,把 account 改回了默认的 user,可以成功安装 2.面包屑如何增加? 我在 application.html.erb 增加了 <%= render_breadcrumb %> ,好像没效果,只能看到 home 3.kaminari 和 will_paginate 冲突的问题,fork 一份出来修改源码 4.节点的统计失效,共有 0 个讨论主题 5.@ 有什么效果?
#19 楼 @sanivbyfish 您好,我也遇到了和您一样的问题
/Users/zhangxiaodong/.rvm/gems/ruby-2.2.0/gems/activesupport-4.2.5.1/lib/active_support/inflector/methods.rb:261:in
const_get': uninitialized constant User (NameError)`
我更换了 monogid 环境,还没有解决,上面说是我的 user 问题,我是新手不是很理解,请问下该怎么解决?
#19 楼 @sanivbyfish 谢谢,我找到答案了,我没有用 devise install a User system.创建用户后,运行通过了。
访问 127.0.0.1:3000:
Showing /home/deploy/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/homeland-1.0.1/app/views/layouts/homeland/application.html.erb where line #5 raised:
couldn't find file 'homeland' with type 'application/javascript'
Checked in these paths:
//= require_tree .
/*
*= require homeland
*/