我是一个新人,一个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
答案 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
这是你的选择吗?