使用rails3名称空间问题

时间:2011-07-30 09:16:36

标签: ruby-on-rails namespaces routes reference

我是一个新人,一个java程序员。

使用命名空间在rails3中遇到了困难。

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

编辑app / models / ns / e1.rb

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 %>  

错误是未定义的方法`ns_e1_ns_e2s_path'

如何配置routes.rb?感谢

感谢ream88,我找到了解决方案。

编辑routes.rb。

namespace :ns do
  resources :e1s do
    resources :e2s, :as => :ns_e2s
  end
end

1 个答案:

答案 0 :(得分:0)

自从我在2007年开始使用Rails之后,我就使用了命名间隔模型,不幸的是Rails在处理名称空间方面并不是很擅长。现在使用Rails 3非常好,但你仍然需要编写比平常更多的代码。 And I'm always ending up, writing my own routes without namespaces。例如:

我有以下两种模式:

class MyAwesomeBlog::User < AR::Base
end

class MyAwesomeBlog::Post < AR::Base
end

# routes.rb
resources :users
resources :posts

这是你的选择吗?