-
使用命名空间后的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
相关推荐
`时,如果出现“命名空间“System.Data”中不存在类型或命名空间名称“Linq””这样的错误,这通常意味着你的项目缺少对`System.Data.Linq`程序集的引用。 要解决这个问题,你需要按照以下步骤操作: 1. 打开你的...
在C#编程语言中,命名空间(Namespace)是组织代码的一种关键方式,它允许我们将相关的类、接口和其他类型集合在一起,以便于管理和使用。在"小组学习:C#命名空间"这个主题中,我们将深入探讨命名空间的概念、作用...
1. **避免名称冲突**:不同的库可能定义了相同名字的类或接口,通过使用不同的命名空间可以避免这种冲突。 2. **逻辑分组**:将相关的类组织在一起,便于管理。 3. **减少全局命名空间污染**:在大型项目中,命名...
例如,在XHTML中引入SVG元素时,就需要指定SVG的命名空间URI,以便浏览器能够正确解析这些元素。 #### 二、XHTML 1.0的规范特点 XHTML 1.0作为HTML 4.01的修正版,具有以下几个显著特点: 1. **严格要求所有标签...
"使用EXCEL命名空间操作EXCEL"是一种更为稳定和高效的方法,它避开了直接调用CreateDispatch的潜在问题。在本篇中,我们将深入探讨如何利用Excel的命名空间来操作Excel文件,并与传统的CreateDispatch方法进行对比。...
命名空间“System.Data”中不存在类型或命名空间名称“SqlServerCe” SqlCeConnection sqlceConn = new SqlCeConnection("server=.;database=db_Stream;uid=sa;pwd="); sqlceConn.Open(); SqlCeCommand sqlceCmd =...
System命名空间是.NET Framework中最基础的命名空间,它提供了对操作系统功能的基本访问,如内存管理、线程控制、异常处理等。这个命名空间下包含的类和接口广泛应用于各种.NET应用程序,如Console、DateTime、...
2. **命名空间**:根据描述,DLL提供了命名空间,这意味着调用函数时需要使用类似`namespace::function_name`的格式,确保正确地调用到AES和DES的加密解密函数。 3. **API接口**:了解DLL提供的API接口,如初始化、...
3. **全局命名空间下引用类**:在没有命名空间的情况下,你可以使用`require_once`或`include_once`来加载SDK的每个文件。确保按照正确的顺序加载,因为类的依赖关系可能会导致错误。例如: ```php require_once '...
如果不使用命名空间,这样的定义会导致编译错误,因为两个`Student`类和两个`fun`函数将被认为是相同的实体。为了防止这种冲突,开发者将这些实体分别放置在了两个不同的命名空间`ns1`和`ns2`中。 #### 实现细节 1...
本文将深入解析与“vs引入命名空间的快捷键”相关的知识点,包括如何在VS中快速引入命名空间、使用快捷键优化编码流程以及提升代码编写速度的技巧。 ### 1. 引入命名空间的快捷键 在C#中,命名空间用于组织和分类...
1. Microsoft.CSharp:这个命名空间专门为C#语言提供了支持,包含了用于编译和代码生成的类,例如CSharpCodeProvider,使得开发者可以通过C#语法生成代码。 2. Microsoft.JScript:针对JScript编程语言,这个命名...
在IT行业中,PHPMailer是一个广泛...同时,理解命名空间在PHP中的使用也是关键,因为这有助于避免类名冲突并保持代码组织有序。在这个项目中,命名空间可能是为了更好地管理PHPMailer类和ThinkPHP的内置类之间的关系。
### Excel命名空间无法引用 在开发过程中,尤其是涉及到Excel的操作时,可能会遇到“Excel命名空间无法引用”的问题。这个问题通常发生在使用.NET Framework(如C#)进行Excel导入导出操作时。本文将针对这一问题,...
1. **作用域解析运算符**:你可以使用`::`来直接引用命名空间内的成员。例如: ```cpp int result = MyLibrary::add(3, 4); // 直接调用命名空间内的add函数 ``` 2. **using声明**:另一种方法是使用`using`声明,...
1. **命名空间**: 命名空间是C#中用于组织类、结构和其他类型的一种方式,它有助于避免命名冲突。例如,`System`命名空间包含了C#标准库中的许多基本类型。使用`using`关键字可以引入命名空间,使得其中的类型可以...
C++标准引入命名空间后,`iostream`等库被置于`std`命名空间下,对应的头文件也更改为不带`.h`后缀的形式,如`iostream`。 使用`#include <iostream>`会引入`std`命名空间下的头文件,但是这并不意味着所有`std`中...
PHP还允许使用多个`use`语句来同时导入多个命名空间中的元素。例如,`use\nihao\shijie as hello,\ws\weichen\www;`将允许我们使用`hello`和`www`作为别名。 在使用命名空间时,我们还可以用反斜杠`\`来调用全局...
了解并熟练掌握命名空间和作用域的概念对于编写清晰、无误的Python代码至关重要,因为它能帮助开发者更好地控制变量的可见性和生命周期,避免潜在的错误和混淆。在实践中,合理地组织命名空间和使用正确的作用域,...