0 0

使用命名空间后的1对多错误10

 

在rails里使用namespace,根据设计定义若干模块,在模块中有个1对多关联关系,例如:

 

rails g scaffold ns::e1 name:string
rails g model ns::e2 name:string e1:references
rake db:migrate

编辑app/models/ns/e1.rb增加e2s属性

 

class Ns::E1 < ActiveRecord::Base
  has_many :e2s
end

 编辑app/views/ns/e1s/show.html.erb

 

<p id="notice"><%= notice %></p>
<p>
  <b>Name:</b>
  <%=@ns_e1.name%>
</p>
<%= form_for([@ns_e1, @ns_e1.e2s.build]) do |f| %>
  <div class="field">
    <%= f.label :name %>
    <br/>
    <%= f.text_field :name %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
<%= link_to 'Edit', edit_ns_e1_path(@ns_e1)%>|
<%= link_to 'Back', ns_e1s_path %>

修改routes.rb

 

namespace :ns do 
  resources :e1s do
    resources :e2s
  end 
end

运行rails s后,增加e1后出错undefined method `ns_e1_ns_e2s_path' for

再修改routes.rb

 

namespace :ns do 
  resources :e1s do
    namespace :ns do
      resources :e2s
    end
  end 
end

http://localhost:3000/ns/e1s/1正常显示,但增加e2失败

uninitialized constant Ns::Ns

不知道原因,请求帮助。

2011年7月30日 15:26

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

0 0

namespace :ns do 
  resources :e1s do
    #namespace :ns do 这一层不要
      resources :e2s
    #end
  end 
end

2011年8月03日 16:02

相关推荐

    SystemDataLinq命名空间问题解决

    `时,如果出现“命名空间“System.Data”中不存在类型或命名空间名称“Linq””这样的错误,这通常意味着你的项目缺少对`System.Data.Linq`程序集的引用。 要解决这个问题,你需要按照以下步骤操作: 1. 打开你的...

    小组学习:C#命名空间

    在C#编程语言中,命名空间(Namespace)是组织代码的一种关键方式,它允许我们将相关的类、接口和其他类型集合在一起,以便于管理和使用。在"小组学习:C#命名空间"这个主题中,我们将深入探讨命名空间的概念、作用...

    .net 命名空间总结

    1. **避免名称冲突**:不同的库可能定义了相同名字的类或接口,通过使用不同的命名空间可以避免这种冲突。 2. **逻辑分组**:将相关的类组织在一起,便于管理。 3. **减少全局命名空间污染**:在大型项目中,命名...

    HTML命名空间问题

    例如,在XHTML中引入SVG元素时,就需要指定SVG的命名空间URI,以便浏览器能够正确解析这些元素。 #### 二、XHTML 1.0的规范特点 XHTML 1.0作为HTML 4.01的修正版,具有以下几个显著特点: 1. **严格要求所有标签...

    使用EXCEL命名空间操作EXCEL

    "使用EXCEL命名空间操作EXCEL"是一种更为稳定和高效的方法,它避开了直接调用CreateDispatch的潜在问题。在本篇中,我们将深入探讨如何利用Excel的命名空间来操作Excel文件,并与传统的CreateDispatch方法进行对比。...

    命名空间“System.Data”中不存在类型或命名空间名称“SqlServerCe”System.Data.SqlServerCe.dll

    命名空间“System.Data”中不存在类型或命名空间名称“SqlServerCe” SqlCeConnection sqlceConn = new SqlCeConnection("server=.;database=db_Stream;uid=sa;pwd="); sqlceConn.Open(); SqlCeCommand sqlceCmd =...

    System System命名空间源码

    System命名空间是.NET Framework中最基础的命名空间,它提供了对操作系统功能的基本访问,如内存管理、线程控制、异常处理等。这个命名空间下包含的类和接口广泛应用于各种.NET应用程序,如Console、DateTime、...

    AES DLL vs2008下可直接调用命名空间

    2. **命名空间**:根据描述,DLL提供了命名空间,这意味着调用函数时需要使用类似`namespace::function_name`的格式,确保正确地调用到AES和DES的加密解密函数。 3. **API接口**:了解DLL提供的API接口,如初始化、...

    php 七牛sdk 整合 不需要命名空间也可以使用

    3. **全局命名空间下引用类**:在没有命名空间的情况下,你可以使用`require_once`或`include_once`来加载SDK的每个文件。确保按照正确的顺序加载,因为类的依赖关系可能会导致错误。例如: ```php require_once '...

    利用命名空间来解决例程序名字冲突问题。

    如果不使用命名空间,这样的定义会导致编译错误,因为两个`Student`类和两个`fun`函数将被认为是相同的实体。为了防止这种冲突,开发者将这些实体分别放置在了两个不同的命名空间`ns1`和`ns2`中。 #### 实现细节 1...

    vs引入命名空间的快捷键.txt

    本文将深入解析与“vs引入命名空间的快捷键”相关的知识点,包括如何在VS中快速引入命名空间、使用快捷键优化编码流程以及提升代码编写速度的技巧。 ### 1. 引入命名空间的快捷键 在C#中,命名空间用于组织和分类...

    net Framework下的命名空间.docx

    1. Microsoft.CSharp:这个命名空间专门为C#语言提供了支持,包含了用于编译和代码生成的类,例如CSharpCodeProvider,使得开发者可以通过C#语法生成代码。 2. Microsoft.JScript:针对JScript编程语言,这个命名...

    phpmailer+thinkphp3.2,命名空间

    在IT行业中,PHPMailer是一个广泛...同时,理解命名空间在PHP中的使用也是关键,因为这有助于避免类名冲突并保持代码组织有序。在这个项目中,命名空间可能是为了更好地管理PHPMailer类和ThinkPHP的内置类之间的关系。

    Excel命名空间无法引用

    ### Excel命名空间无法引用 在开发过程中,尤其是涉及到Excel的操作时,可能会遇到“Excel命名空间无法引用”的问题。这个问题通常发生在使用.NET Framework(如C#)进行Excel导入导出操作时。本文将针对这一问题,...

    c++制作自己的namespace命名空间

    1. **作用域解析运算符**:你可以使用`::`来直接引用命名空间内的成员。例如: ```cpp int result = MyLibrary::add(3, 4); // 直接调用命名空间内的add函数 ``` 2. **using声明**:另一种方法是使用`using`声明,...

    C# 语法全解--命名空间,转换,接口,委托

    1. **命名空间**: 命名空间是C#中用于组织类、结构和其他类型的一种方式,它有助于避免命名冲突。例如,`System`命名空间包含了C#标准库中的许多基本类型。使用`using`关键字可以引入命名空间,使得其中的类型可以...

    C++ std命名空间 (2).pdf

    C++标准引入命名空间后,`iostream`等库被置于`std`命名空间下,对应的头文件也更改为不带`.h`后缀的形式,如`iostream`。 使用`#include &lt;iostream&gt;`会引入`std`命名空间下的头文件,但是这并不意味着所有`std`中...

    PHP命名空间(namespace)的动态访问及使用技巧

    PHP还允许使用多个`use`语句来同时导入多个命名空间中的元素。例如,`use\nihao\shijie as hello,\ws\weichen\www;`将允许我们使用`hello`和`www`作为别名。 在使用命名空间时,我们还可以用反斜杠`\`来调用全局...

    Python进阶_关于命名空间与作用域(详解)

    了解并熟练掌握命名空间和作用域的概念对于编写清晰、无误的Python代码至关重要,因为它能帮助开发者更好地控制变量的可见性和生命周期,避免潜在的错误和混淆。在实践中,合理地组织命名空间和使用正确的作用域,...

Global site tag (gtag.js) - Google Analytics