首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Rails3入门锦集(七) 构建多模型表单 视图帮助器

2012-12-24 
Rails3入门锦集(7)构建多模型表单 视图帮助器入门锦集1-8都来自官方的翻译:http://edgeguides.rubyonrails

Rails3入门锦集(7) 构建多模型表单 视图帮助器

入门锦集1-8都来自官方的翻译:http://edgeguides.rubyonrails.org/getting_started.html

?

?

1. 构建多模型表单

现在的博客一般都有便签功能, 方便读者通过关键字索引文章. 要实现该特性你的应用需要在一个表单中交互多个模型. 那么这时候Rails提供了另一个重要的功能: 嵌套表单

?

为了展示, 我们将为post的多标签提供支持. 首先, 我们需要为标签创建模型:

?

$ rails g model tag name:string post:references

?

然后:

?

$ rake db:migrate

?

接下来, 编辑post.rb建立另一半关联, 并告诉rails你需要通过posts来编辑tags:

?

?

?现在你可以直接在创建或编辑post页面中添加或删除tags了.

?

不过?@post.tags.map { |t| t.name }.join(", ") 感觉不是那么友好, 我们可以通过帮助器来改变.

?

?

2. 视图帮助器

视图帮助器位于 app/helpers, 可以提供一些可重用的视图代码片段. 在这里, 我们需要把所有tags的名称连起来并用逗号隔开, 由于它位于Posts视图, 那么我们可以在 PostsHelper 中实现:

module PostsHelper def join_tags(post) post.tags.map { |t| t.name }.join(", ") endend

?

?然后把上面的?<%= @post.tags.map { |t| t.name }.join(", ") %> 改为:

<%= join_tags @post %>

?

?

?

转自:?http://onia.iteye.com/blog/833152

热点排行