上篇里的主题topic只是标题而没有内容,主要是内容全部都放到了回复post这里,本来研究了下javaeye的论坛,发现板块列表里“最新发表”指向都是xxx/post/id,不知有什么诀窍,所以也打算将主题topic的内容移到post里看看。
一、回复post包括内容、主题ID、用户ID、创建日期等。
创建scaffold:scaffold_resource post content:text topic_id:integer user_id:integer create_at:datetime
topic与post是一对多的关系,修改相关的model文件来达到这个目的。
topic.rb 代码
- class Topic < ActiveRecord::Base
- belongs_to :board
- has_many :posts
- end
post.rb 代码
- class Post < ActiveRecord::Base
- belongs_to :topic
- end
并修改config/routes.rb ,像上一篇的一样
ruby 代码
- map.resources :topics do |topics|
- topics.resources :posts
- end
调整topic的 index.rhtml 以达到通过那里访问posts的目的:
xml 代码
- <td><%= link_to "#{h topic.title}", posts_path(topic) %>td>
二、创建用户:只包括帐号和密码和日期
三、登录:修改application控制器,添加检查登录的filter:
ruby 代码
- class ApplicationController < ActionController::Base
-
- session :session_key => '_bbs_session_id'
-
- before_filter :authorize
-
- private
-
- def authorize
- unless User.find_by_id(session[:user_id])
- flash[:notice] = "请登陆!"
- redirect_to(:controller=>'index', :action=>'login')
- end
- end
- end
由于 index 控制器还没有,所以必须创建一个简单的: controller index login:
ruby 代码
- class IndexController < ApplicationController
- skip_before_filter :authorize, :only => :login
-
- def login
- session[:user_id] = nil
- if request.post?
- user = User.find_by_username_and_password(params[:username], params[:password])
- if user
- session[:user_id] = user.id
- redirect_to(:controller=>'boards', :action=>'index')
- else
- flash[:notice] = '帐号密码不匹配!'
- end
- end
- end
-
- end
不能限制过客的浏览功能,所以其他控制器我们都修改下来跳过登录拦截:
ruby 代码
- skip_before_filter :authorize, :only => [:index, :show]
分享到:
相关推荐
在本篇博文中,我们将继续探讨如何使用Rails框架构建一个简单的论坛系统,这是系列教程的第三部分。在前两部分中,我们可能已经创建了基础的数据库模型、控制器以及视图,现在我们的目标是将这些元素整合起来,使得...
3. **Markdown 支持**: Forem支持Markdown语法,让用户可以使用简单的文本格式来创建富文本内容,如加粗、斜体、链接等。 4. **标记系统**:用户可以通过标签对帖子进行分类,便于其他用户搜索和发现相关话题。 5...
通过学习和分析这个基础Rails论坛项目,开发者可以深入了解Rails框架的工作原理,以及如何结合JavaScript创建一个功能完备的Web应用。此外,此项目也可以作为进一步开发复杂论坛应用的起点,比如增加权限管理、搜索...
【标题】"Free_Forum:一个简单论坛的 Ruby on Rails 实现"是关于使用 Ruby on Rails 框架创建一个论坛应用的项目。这个开源项目为初学者提供了一个实践平台,让他们了解如何利用 Rails 的核心功能来搭建一个交互式的...
2. 讨论区与主题:支持创建多个讨论区,每个讨论区可以有多个主题,用户可以发表观点、回复讨论。 3. 搜索与过滤:强大的搜索功能帮助用户找到感兴趣的话题,同时具备举报、屏蔽等过滤机制,维护社区环境。 4. 积分...
在"bbs.zip_bbs论坛系统"中,我们关注的是如何实现这样一个系统的核心功能,包括用户注册、发布主题、回复帖子等基础操作。 **一、用户注册** 用户注册是论坛系统的第一步,通常涉及以下步骤: 1. 用户填写注册...
描述中的"_Ruby_"进一步确认了这个项目与Ruby语言有关,很可能意味着开发者使用了Ruby on Rails来构建论坛。Rails提供了一系列的内置功能,如路由、ActiveRecord(用于ORM,对象关系映射)、ActiveSupport库等,这些...
### 下一代论坛程序Discourse:简洁而不简单的深度解析 #### 一、Discourse概述 **Discourse**是由StackOverflow联合创始人Jeff Atwood推出的全新开源论坛项目。该项目旨在颠覆过去十年来几乎没有变化的传统论坛...
- 用户协议与隐私政策:明确告知用户平台数据使用规则,保护用户权益。 2. **论坛系统**: - 论坛结构:包括版块分类、主题、帖子等元素,方便用户浏览和参与讨论。 - 发帖与回复:用户创建新主题、回复他人帖子...
5. **用户界面与交互设计**:一个良好的在线论坛需要有直观易用的界面,包括清晰的导航、响应式设计以适应不同设备,以及良好的用户体验设计。 6. **扩展与自定义**:为了满足不同需求,源代码应允许开发者添加插件...
在线论坛是一种基于Web技术的互动平台,用户可以在这里发布主题、回复他人的话题,进行讨论和交流。"luntan-.zip_luntan 论坛"可能是一个关于在线论坛开发的资源包,包含了与构建和管理论坛相关的代码、文档或者示例...
"Ruby BBS"是一个使用Ruby编程语言开发的论坛系统,它体现了Ruby在构建Web应用程序方面的灵活性和强大功能。Ruby是一种面向对象的、动态类型的编程语言,以其简洁的语法和强大的元编程能力而闻名,这使得开发者能够...
总之,Discourse是一个强大且灵活的开源论坛解决方案,其背后是Ruby on Rails的强大支撑,为创建互动性强、用户体验优秀的在线社区提供了可能。无论你是开发者还是社区管理员,都能从中找到适合自己的工具和功能。
6. 网络架构:整个平台的网络架构涉及前端和后端的分离,可能采用RESTful API进行数据交互,前端使用Vue.js、React或Angular等现代JavaScript框架,后端可能基于Node.js、Django、Ruby on Rails等服务器端技术。...
它是用Ruby on Rails编写的,并使用Bootstrap进行UI设计。 我们使用haml作为HTML模板引擎。 一些旧模板以简单HTML编写(请PR!)。 编写模板代码时,请使用HAML。 您可以从或学习HAML。 CAT-Forum的一些关键功能...
2. **权限管理**:通过角色权限系统,Hifone可以精细化控制用户的不同操作权限,如发帖、回复、编辑等,以维护论坛的秩序。 3. **内容管理**:论坛的核心在于内容,Hifone支持多种格式的帖子,包括文字、图片、视频...
在描述中提到的“我回复内容的例子的完整程序”,意味着这个压缩包可能包含了某个用户在博客论坛(如ITEYE)上分享的关于如何在Rails应用中集成SQLite的代码示例。通过提供的博文链接(虽然在这里无法直接访问),...
"Adda:话题讨论应用(论坛)"是一个基于JavaScript技术构建的在线社区平台,它允许用户参与各种话题的讨论,分享知识,交流观点。在这个应用中,用户可以创建主题、发表评论,与其他用户进行互动,形成一个互动性强...
复旦BBS的可扩展搜索引擎解决方案是一个基于开源技术栈构建的高效、可伸缩的搜索系统,主要用于提升论坛内容的检索效率和用户体验。这个解决方案利用了大数据处理框架Hadoop、分布式数据库HBase、网络爬虫Nutch、...