Homeland - 嵌入式的论坛组件

Gem · huacnlee · Created at · Last by zhangst23 Replied at · 39 hits
2

越来越发现,我的每个项目中都需要类是 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/ 里面的文件

共收到 24 条回复
15
huobazi · #1 ·

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

2
huacnlee · #2 ·

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

396
linjunpop · #3 ·

cool~

344
leondu · #4 ·

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

2
huacnlee · #5 ·

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

15
huobazi · #6 ·

看来 @huacnlee 做了不少站啊

558
camel · #7 ·

very cool

101

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

22

holy crap!我的rails启蒙项目。

3
lgn21st · #10 ·

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

1644

很不错。过几天去看下

96

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

96
n5ken · #13 ·

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

3
lgn21st · #14 ·

#13楼 @n5ken 是的。

3316
cconev · #15 ·

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

96
xuelz · #16 ·

这个是我想要的东西

780

什么时候实现 ActiveRecord 呀 :)

96
sword721 · #18 ·

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

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

781

/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
huacnlee · #20 ·

#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 里面又定义的)

781

#20楼 @huacnlee

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

96
wmzsonic · #22 ·

这个还有在维护么?demo看不了

24494

#19楼 @sanivbyfish 您好,我也遇到了和您一样的问题
/Users/zhangxiaodong/.rvm/gems/ruby-2.2.0/gems/activesupport-4.2.5.1/lib/active_support/inflector/methods.rb:261:inconst_get': uninitialized constant User (NameError)`
我更换了monogid环境,还没有解决,上面说是我的user问题,我是新手不是很理解,请问下该怎么解决?

24494

#19楼 @sanivbyfish 谢谢,我找到答案了,我没有用 devise install a User system.创建用户后,运行通过了。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up