У меня есть теоретический вопрос о том, как реализовать концепцию MVC лучшим способом в Ruby (так как я больше знаком с не-MVC -thx для языков подсказок, таких как ASP, PHP).Сделайте это «MVC» в Ruby - или нет? (Car-> Parts)
В моем примере приложения вам необходимо управлять Автомобилем и его частями. После этого я бы (на мой взгляд) реализовать следующие два контроллера:
- CarsController
- PartsController
Оба имеют свои действия по умолчанию (индекс, шоу, редактирование, удаление).
В действии «указатель» PartsController отображаются все связанные детали для автомобиля.
В «индексных» действиях CarsController все детали автомобиля будут получать, а также дополнительно я бы включил содержание «индекс» действия PartsController проходящего через автомобили идентификатор к нему (или те, в сессии).
Пример компоновки (CarsController/показать/1)
- Автомобиль: Порше GT
- марка: Порше
- Модель: GT
- PS: 400
- Партии (исходя из PartsController/индекса, части автомобиля были кэшируются CarsController раньше):
---
дверного замка --- Двигатель 400
Я попытался с помощью
render "cars/index"
render :action => "cars/index"
render :template => "cars/index"
render :controller => "cars", :action => "index"
в моем шаблоне index.html.erb, но никто из них не работает (я каждый раз получаю сообщение об ошибке «шаблон не хватает»).
Поскольку у меня было много проблем с этим, я думаю, что моя концепция/реализация может быть неправильной.
Любые предложения по этому вопросу, чтобы найти лучший способ?
Благодарим за помощь!
UPDATE:
Хорошо здесь является более конкретные example.Lets говорят, пользователь переходит на локальный/автомобили/1. Вот шаблоны моих контроллеров для делать это:
приложение/просмотр/Автомобили/show.html.erb
<%= form_for(@car) do |f| %>
<div class="field">
<%= f.label :brand %><br />
<%= f.text_field :brand %>
</div>
<div class="field">
<%= f.label :model %><br />
<%= f.text_field :model %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<%= render "parts/index" %>
приложение/просмотр/частей/index.html.erb
<table>
<% @parts.each do |part| %>
<tr id="part-<%= part.id %>">
<td><%= part.amount %></td>
<td><%= part.price_total %></td>
</tr>
<% end %>
</table>
Части загружаются из кеша, поэтому идентификатор автомобиля не требуется для PartsController (еще нет)!
routes.rb
resources :cars do
resources :parts
end
Затем я` получить следующее сообщение об ошибке:
Missing partial parts/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "D:/Dev/Ruby/MyCRM/app/views" * "C:/Ruby193/lib/ruby/gems/1.9.1/gems/datagrid-0.5.3/app/views"
Ни «ASP», ни PHP [* языки функционального программирования *] (http://en.wikipedia.org/wiki/Functional_programming). Btw: это для Rails? Еще одна структура? Если да, обновите его, чтобы отразить. –
спасибо. «отражать»? – Thomas233
Я не совсем уверен, что вы здесь делаете. По умолчанию действие «index» состоит в том, чтобы показать список всех вещей - например, автомобили/индекс будут показывать все автомобили. Я думаю, вы думаете о действии «шоу», которое показывает одно. то есть автомобили/1 = показать автомобиль 1. --- дается ли вам более подробная ошибка, чем «шаблон отсутствует»? можете ли вы опубликовать, на каком пути он пытается найти шаблон? – YenTheFirst