Использование rails3 namespace question - PullRequest
0 голосов
/ 30 июля 2011

Я новый парень, ява-программист.

Использование пространства имен столкнулось с трудностями в rails3.

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

редактировать приложение / модели / ns / e1.rb

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

редактировать приложение / 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 '

Как настроить route.rb? Спасибо

Спасибо, ream88, я нашел решение.

Редактировать маршруты. Рб.

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

1 Ответ

0 голосов
/ 30 июля 2011

Я использовал модели с именованным пространством с тех пор, как начал работать с Rails в 2007 году, и, к сожалению, Rails не очень хорош в обработке пространств имен. Теперь с Rails 3 все намного лучше, но вам все равно придется писать больше кода, чем обычно. И я всегда заканчиваю тем, что пишу свои собственные маршруты без пространств имен . Например:

У меня есть две модели:

class MyAwesomeBlog::User < AR::Base
end

class MyAwesomeBlog::Post < AR::Base
end

# routes.rb
resources :users
resources :posts

Это вариант для вас?

...