0 0

这是rails 2.0.2的一个bug吗?20

多对多关系,两个model:
class Group < ActiveRecord::Base
  has_and_belongs_to_many :permissions
end

class Permission < ActiveRecord::Base
  has_and_belongs_to_many :groups
end

进行新增操作,代码如下:
@group = Group.new(:name => params[:group][:name])
(params[:group][:permissions] || []).each do |permission|
  @group.permissions << Permission.find(permission)
end
@group.save

看log,发现生成的sql为:
INSERT INTO `groups` (`name`) VALUES('Supplier')
INSERT INTO groups_permissions (`permission_id`, `group_id`, `id`) VALUES (10, 1, 10)
上一条sql没有id,用数据库自身的自增长,没有问题.但下一条sql确多了id字段,且值始终是permission_id的值,不知道这是否是rails 2.0.2的一个bug,已经困扰我几天了
2008年7月24日 16:02

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

0 0


  permissions = Permission.find(params[:group][:permissions].split(','))
  
  permissions.each do |p|
    p.groups << Group.new(:name => params[:group][:name])
  end



"<<" 会直接Insert 不用再Save

Permission.find(params[:group][:permissions].split(',')) 是一句SQL

Permission.find(id)  否则 N 句

2008年7月25日 09:31

相关推荐

    Ruby on Rails安装指南(Ruby 1.8.6+Rails 2.0.2)

    Ruby on Rails 安装指南是指安装 Ruby 1.8.6 和 Rails 2.0.2 的详细步骤。首先,需要下载 Ruby One-Click Installer 版本,并安装 Ruby。然后,下载 Rails 2.0.2 版本,并安装。接下来,需要安装 Mongrel 服务器。...

    rails 2.0.2 分页 需另外下载插件

    在Ruby on Rails框架中,`Rails 2.0.2`是一个较早的版本,而分页功能在那个时期并不像现在的Rails应用那样内置在框架内。为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在...

    ruby1.8.6 + rails2.0.2 安装配置 详细说明

    这个过程可能需要一些时间和耐心,但遵循上述步骤,您将成功建立一个兼容ruby1.8.6和rails2.0.2的开发环境。同时,提供的`安装说明.xls`文件应该包含更详细的步骤和可能遇到的问题解决方案,确保您在整个过程中得到...

    railsbrain网站的rails2.3文档(bug修复版)

    Railsbrain是一个专注于Rails框架的在线资源平台,而这个“railsbrain网站的rails2.3文档(bug修复版)”显然是一份针对Rails 2.3版本的更新文档,旨在修复用户在浏览和交互过程中遇到的问题。Rails是Ruby编程语言的...

    rails-chm-2-0-2.rar

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一个开源Web应用程序框架,它基于MVC(模型-视图-控制器)架构模式,用于快速开发动态网站。Rails以其“约定优于配置”(Convention Over ...

    Rails 101 入门电子书

    - 测试安装: 创建一个简单的Rails应用来验证是否成功安装。 #### 五、练习作业0-Hello World - **目标**: - 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器...

    ruby on rails源代码分析

    Rails 是一个基于 Ruby 语言的 web 应用程序框架,以其“约定优于配置”的设计理念和高效的开发速度而闻名。在本文中,我们将深入分析 Ruby on Rails 2.0.2 的源代码,特别是关注其启动过程。 首先,Rails 的启动...

    ruby on rails安装环境.txt

    这行命令指示在`C:\ruby\railsapp`目录下启动了WEBrick服务器,这是Ruby自带的一个HTTP服务器,用于运行Rails应用。输出中的“Booting WEBrick”表明服务器正在启动中,随后安装RDoc文档的过程可能由于某些原因未能...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    Rails101_by_rails4.0

    Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    这将在Rails项目的`lib/my_go_app`目录下创建一个新的Go应用结构。 ### 4. 集成Go API `GoOnRails`会生成一个基础的Go API服务器,你可以在此基础上编写业务逻辑。Rails应用可以通过HTTP调用来与这个Go服务通信。...

    关于rails 3.1 cucumber-rails 1.2.0

    首先,Rails 3.1是Ruby on Rails框架的一个版本,它在2011年发布。这个版本引入了一些显著的改进,如Asset Pipeline(资产管道)和CoffeeScript支持。Asset Pipeline允许开发者更有效地管理和优化应用程序的前端资源...

    提升Ruby on Rails性能的几个解决方案

    简介 Ruby On Rails 框架自它提出之日...Rails 是一个真正彻底的 MVC(Model-View-Controller) 框架,Rails 清楚地将你的模型的代码与你的控制器的应用逻辑从 View 代码中分离出来。Rails 开发人员很少或者可能从未遇到

    Rails

    标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...

    jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3.zip

    jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3 railsjQuery 面向 Rails 如此伟大。这里 gem 提供:jQuery 1.7.2jQuery UI 1.8.18 ( 仅适用于 javascript )jQuery UJS适配器assert_select_j

    rails2.3.2

    描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...

    rails本地安装包完整版

    Rails是Ruby编程语言的一个著名框架,用于开发Web应用程序。它以MVC(模型-视图-控制器)架构模式为基础,提供了许多内置功能,使开发者能够更高效地编写代码。在这个"rails本地安装包完整版"中,包含了Rails 2.1.0...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **步骤**:通过命令行使用`rails new project_name`来初始化一个新的Rails项目。 - **结构**:新项目将包含默认的目录结构,如`app`、`config`、`db`等,分别用于存放应用程序代码、配置文件、数据库迁移脚本等。 ...

    rails2.3.8 && ruby1.8.7

    Ruby on Rails(通常简称为Rails)是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构模式,用于简化Web应用的开发。Ruby 1.8.7是这个框架运行所依赖的特定版本的Ruby解释器。 描述中...

Global site tag (gtag.js) - Google Analytics