2

Homeland - 嵌入式的论坛组件

Gemhuacnlee • 于发布 • 最后由 sanivbyfish回复 • 2714次阅读

越来越发现,我的每个项目中都需要类是 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 打开论坛了

定制 Views

如果你想自己调整 View 结构的话,你可以用这个命令把 View 生成出来:

$ rails g homeland:views

然后修改 app/views/homeland/ 里面的文件

共收到 21 条回复
15

有木有考虑把目前的 ruby-china 给镶进去~?

2

#1楼 @huobazi Ruby China 有太多特性,不适合每个项目,还是之前那种简单的方式满足需求

3f9a9226f5b1400c66bc045b38d3993b

cool, 是不是可以看看和这个有什么异同: https://github.com/radar/forem

2

我也是有参考 forem 的设计方式,只是他的功能不是我喜欢的
在线演示 http://720p.so/bbs/

15

看来 @huacnlee 做了不少站啊

Ab989bfcd6ed51d34250507f7a248653

very cool

101

很棒!我也打算这么搞,到时候参考一下Homeland。

22

holy crap!我的rails启蒙项目。

Large f08750e605d58ff54872d955169ce0c3

很赞!超级实用的东东,谢谢 @huacnlee

1644

很不错。过几天去看下

100c4192b782dd7cd5eaeefe07a2ff9b

好厉害。mark一下,以后实践

5a4fc539d8eb5c69fd5e7e75ff4b39d1

我想知道那个 “盛大云” 还有 “图片存储由 又拍云存储 提供” 是不是意味着这两个都不用花钱由提供商赞助的??

3316

和 ruby-china 这套代码搭配时候问题不少,主要是缓存有交错 ,在个人页面也相应出现问题。

81a62db2d96d9efaf84a9991a716acce

这个是我想要的东西

780

什么时候实现 ActiveRecord 呀 :)

076c36362bc81662c2424488f225d66f

安装完运行后,点击发布新帖,报下面这个错误,怎么弄啊?
NoMethodError in Homeland::TopicsController#new

undefined method `require_user' for #Homeland::TopicsController:0xbb3a5a0

Ea7613ac0b30a805f357b42bd2e1923c

/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)

2

#18楼 @sword721 打开 config/initializes/homeland.rb 修改那几个配置参数

也就是这么个文件: https://github.com/huacnlee/homeland/blob/master/lib/generators/homeland/install/templates/initializer.rb

此文件是用于申明一些 Homeland 需要的方法

你这个是需要给 Homeland.require_user_method 设定一个方法名(这个方法名需要再 ApplicationController.rb 里面又定义的)

Ea7613ac0b30a805f357b42bd2e1923c

#20楼 @huacnlee

1.改了代码,把account改回了默认的user,可以成功安装
2.面包屑如何增加?
我在application.html.erb增加了 <%= render_breadcrumb %> ,好像没效果,只能看到home
3.kaminari和will_paginate冲突的问题,fork一份出来修改源码
4.节点的统计失效,共有 0 个讨论主题
5.@ 有什么效果?

需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。