0 0

rails的controller里使用mix-in10

我现在在作一个交友的社区网站,因为基本上每个发文章或者是图片的地方都有回复功能,而且还要可以对别人的回复进行回复。所以就想把回复这块代码抽出来。现在看下来好像有两种方式,一个是写插件,一个是把代码写在module里,然后在需要用到的controller里用include来作mix-in。因为对rails还不是很熟悉,所以插件方式就先不想了。但是用后一种方式写代码在module里,我在调用的controller里用include后,却总是在调用这个controller里报说module里的actions不存在。这个问题很郁闷一直没有解决。
问题补充:
产看过一些comment的插件,但是和我们需要有一些差别。我们是可以让用户对别人的回复再进行回复了。而且回复用的窗口是用JAVASCRIPT开控制,每次都跟在要被回复的那个地方下面。
2008年7月04日 10:52

1个答案 按时间排序 按投票排序

0 0

简单的方式,可以这样来实现,comments_controller 依然还是单独的一个controller,在需要回复的地方用render加上回复的内容。

 <%= render :partial=>'/comments/index',:locals=>{:commentable_id=>@article.id}%>


剩余的就和其他的controller一样编码了。不同的类型,你可以获取当前的controller的名称,或者传个不同的type,就可以了。

注:
其实有很多插件可用的,不需要自己写的。你只需要script/plugin install ***就可以了。

http://agilewebdevelopment.com/plugins/search?search=comment

2008年7月04日 11:03

相关推荐

    Ruby for Rails

    - 模块可以包含多个方法定义,并且可以通过混合使用(mix-in)的方式添加到其他类中,实现代码复用。 - 类和模块可以组合使用,来构建复杂的程序结构。 3. **默认对象(self)与作用域** - `self`关键字在Ruby中...

    Ruby_for_Rails.pdf

    讨论混入(Mix-in)的设计模式。 #### 2.3 元编程与DSL - **元编程**:Ruby强大的元编程能力允许程序在运行时修改自身的行为。 - **领域特定语言(DSL)**:介绍如何利用Ruby编写特定领域的语言,以提高开发效率。 ...

    使用 Ruby 进行 Web 应用程序的开发和部署.zip

    - **模块(Module)**:用于封装代码,提供命名空间,实现类的多重继承和混入(Mix-in)。 3. **Ruby on Rails(Rails)框架**: - **MVC 架构**:Rails 遵循 Model-View-Controller 模式,分离业务逻辑、数据和...

    Ruby程序设计资料大全

    4. **Ruby的模块系统**:Ruby中的模块(Module)可以用于封装方法和常量,实现命名空间管理,以及混合(Mix-in)功能,即把模块的方法添加到类中,增加代码重用性。 5. **Ruby on Rails框架**:虽然Ruby语言本身...

    every_ruby_talk_ever:当我刚开始使用Ruby时,我疯狂观看了会议演讲,以求进步。 这是我的一些注意事项。

    Ruby的继承机制允许子类继承父类的所有属性和方法,而模块(modules)则提供了代码复用和混合(mix-ins)的功能,让类能够拥有不属于其自身类的特性。 再者,Rails框架是Ruby在Web开发领域的明星工具。Ruby on ...

    Ruby程序设计(word文档).zip

    类可以继承其他类,使用`super`调用父类方法,以及实现多重继承和模块混合(Mix-in)。 5. **模块**:模块用于代码复用和分类,可以通过`include`或`prepend`引入到类中,提供命名空间隔离和防止命名冲突。 6. **...

    培训课程

    5. **类与模块**:Ruby的类用于定义对象的结构和行为,而模块则提供命名空间和混入(mix-in)功能,允许代码重用和增加类的方法。 6. **异常处理**:Ruby使用begin/rescue/ensure/else来处理运行时错误,确保程序的...

    W5D1-项目

    继承(Inheritance)允许子类(Subclass)继承父类(Superclass)的属性和方法,而混入(Mix-in)则能将模块的方法添加到类中。 在“W5D1-项目”中,你可能会接触到Ruby的文件操作。Ruby提供了简单的API来读取、...

    Web-Apps-Class:类行使

    除了继承,Ruby还支持模块(Module),它可以作为混入(Mix-in)来扩展类的功能。模块类似于Java的接口,但也可以包含方法和变量。例如,我们可以定义一个`Authenticable`模块,然后将其混入到`User`类中,实现用户...

    geunyoung490.github.io

    Ruby的类也支持多重继承,可以通过模块(Module)实现类之间的功能复用和混合(Mix-in)。 Rails,全称Ruby on Rails,是由David Heinemeier Hansson开发的一个开源Web应用程序框架,完全基于Ruby语言。它遵循MVC...

    脚踢

    6. Mixins:Ruby的模块(Module)可以用来实现代码复用,通过`include`关键字,一个类可以"混合"(Mix-in)另一个模块的特性。 7. Duck Typing:“如果它走起来像鸭子,叫起来也像鸭子,那么它就是鸭子。”这是Ruby...

    Ruby中的钩子方法详解

    `extended`和`prepended`:这两个钩子方法是关于模块的混合(mix-in)行为。`extended`是在一个类被扩展了模块时调用,而`prepended`则是在模块被前置混入(prepended to)一个类时调用。在Ruby中,前置混入是一种...

    rb_101

    模块(Module)在 Ruby 中用于组织代码,它们提供命名空间,避免命名冲突,并允许通过模块混合(Mix-in)来扩展类的功能。 6. **异常处理** 学习如何使用 begin/rescue/ensure 语句进行异常处理是编程实践中的...

    maru_blog_post_code:关于使用 maru 在 Elixir 中实现类似 Rest 的 Api 的博客文章的代码

    Maru是一款轻量级且强大的Web开发库,它提供了类似于Ruby on Rails的路由和参数处理功能,但更加简洁和灵活。 首先,让我们理解什么是Maru。Maru是由Elixir社区开发的一个HTTP服务器框架,它允许开发者以模块化的...

    长寿凤凰

    "长寿凤凰"这一标题可能指的是一个使用Elixir编程语言构建的项目,可能与Phoenix框架有关。Elixir是一种基于 Erlang VM(BEAM)的函数式、并发和面向进程的编程语言,它以其高效能和适合构建分布式系统而闻名。而...

Global site tag (gtag.js) - Google Analytics