`
hideto
  • 浏览: 2690692 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第五十七式: Select or Create

    博客分类:
  • Ruby
阅读更多
看一个选择Category或从text_field创建新Category的例子:
<!-- views/products/_form.rhtml -->
<p>
  <label for="product_category_id">Category:</lable><br/>
  <%= f.collection_select :category_id, Category.find(:all), :id, :name, :prompt => "Select a Category" %>
  or create one:
  <%= f.text_field :new_category_name %>
</p>

我们修改product.rb,加一个before_save:
# models/product.rb
class Product < ActiveRecord::Base
  belongs_to :category
  attr_accessor :new_category_name
  before_save :create_category_from_name

  def create_category_from_name
    create_category(:name => new_category_name) unless new_category_name.blank?
  end
end

其中create_category是belongs_to :category自动创建的方法
分享到:
评论

相关推荐

    Rails的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    resources :users, only: [:index, :show, :create, :update, :destroy] end ``` 3. **实现控制器**:针对每个路由编写相应的控制器方法,如`index`用于获取所有用户列表、`show`用于显示单个用户的详情等。 4. *...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。

    rails_or:用于在Rails 5、6中编写OR Query的更简洁语法。还为Rails 3和4添加#or支持。

    RailsOr rails_or是一个Ruby Gem,供您编写更整洁的OR查询。 它将尽可能使用Rails 5中添加的内置方法or方法,因此您不必担心它将影响active_model 。 否则,它将为Rails 3和Rails 4实现or方法。支持Ruby2.2〜2.7 ...

    select2-rails:将Select2 javascript库与Rails资产管道集成

    Select2用于Rails资产管道 是基于jQuery的选择框的替代品。 它支持搜索,远程数据集和结果的无限滚动。 select2-rails gem将Select2 jQuery插件与Rails资产管道集成在一起。 用法 安装select2-rails gem 将select2...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    Rails 101 入门电子书

    - 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器和视图。 - 在浏览器中查看结果。 #### 六、Rails的路由 - **概念介绍**: 路由是连接用户请求URL与应用...

    Rails 101S

    ### Rails 101S: 初学者必备的Ruby on Rails 宝典 #### Introduction: 深入了解Ruby on Rails 《Rails 101S》是一本为Ruby on Rails初学者准备的手册,旨在帮助新手快速入门并掌握基本的开发技能。本手册将从最...

    java基础之rails命令大全.pdf

    ### Java基础之Rails命令大全知识点解析 #### 一、Rails 命令概述 Rails 是一个用于 Web 开发的框架,它基于 Ruby 语言。Rails 遵循 MVC(Model-View-Controller)架构模式,使得 Web 应用程序的开发更加高效、简洁...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    Rails相关电子书汇总

    标题 "Rails相关电子书汇总" 暗示了这个压缩包包含了关于Ruby on Rails框架的电子书籍资源。Ruby on Rails,通常简称为Rails,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,以...

    Ruby on Rails入门经典代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成.zip

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...

    Advanced Rails

    **高级Rails** Rails,全称为Ruby on Rails,是一款基于Ruby编程语言的开源Web应用程序框架,以其MVC(模型-视图-控制器)架构模式而闻名。"Advanced Rails" 涵盖了Rails开发中的高级主题和技术,是Ruby on Rails...

    rails有用的命令

    - `rake db:create`:根据数据库配置创建数据库。 - `rake db:migrate`:执行所有的数据库迁移任务,更新数据库结构。 - `rake db:migrate:status`:查看迁移任务的状态。 - `rake db:rollback`:撤销最近一次...

    [Rails] Crafting Rails Applications (英文版)

    [Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...

    rails指南 中文版

    6. **Scaffolding**:Rails提供了快速生成基本CRUD(Create, Read, Update, Delete)操作的命令行工具,可以自动生成控制器、视图、样式表和测试文件,方便快速搭建原型。 7. **Testing**:Rails强调测试驱动开发,...

    Rails3常用命令行命令

    rake db:create # 创建数据库 rake db:migrate # 应用迁移文件,生成对应的数据库表 ``` Rails的scaffold命令是一个强大的工具,可以快速生成一套完整的CRUD(Create, Read, Update, Delete)界面,包括Model、View...

Global site tag (gtag.js) - Google Analytics