2013-06-15 3 views
-2

У меня есть контроллер и в индексном представлении я пытаюсь отобразить частичный с другого контроллера. Вот другой контроллер:Ruby render другой контроллер частично

class ModelController < ApplicationController 
def view 
    @model = Model.where('equipment_id' => params[:equipment_id]) 
    render :partial => 'view_model' 

end 
end 

И в индексном я пытаюсь это:

<div id ="mdl-inner_box" class="inner_box"> 
<%= render "model/view", :@model => Model.first %> 
</div> 

И мой частичный вид такой:

<% @model.each do |m| %> 
<div> <%= m.name %> </div> 
<% end %> 

Я получаю эту ошибку:

ActionView :: MissingTemplate at/equipment

Отсутствует частичная модель/вид с {: локаль => [: EN]: форматы => [: HTML]: Обработчики => [: Еврорадио,: б

Что такое правильный способ сделать это? Спасибо

ответ

1

Слишком много ошибок, чтобы действительно решить этот вопрос!

Прежде всего, если вы показываете код для действия вашего индекса, почему это действие вида?

I have a controller and in the index view...

class ModelController < ApplicationController 
    def view 

    # should be 

    def index 

На ваш взгляд индекса, предположительно app/views/models/index.html.erb вы оказываете частично, что указывает на app/views/model/_view.html.erb. Это должно вероятно быть models

<%= render "model/view", :@model => Model.first %> 

<!-- should be --> 

<%= render "models/view", :model => @model %> 

и установить @model в контроллере. Вы можете поместить Model.first в представление, но я думаю, что немного разломает шаблон MVC.

Наконец, в частичном, вы получаете доступ к переменной класса @model, пробивающей цель передачи ее как локальной. Вы также вызываете на нем .each, что является методом циклического перемещения по коллекциям, а не для отдельных записей. Например, вы бы сделали @models.each и никогда не @model.each.

<% @model.each do |m| %> 
    <div><%= m.name %></div> 
<% end %> 

<!-- should be something like --> 

<%= model.name %> 

Короче говоря, мне кажется, ты довольно потерял, так что я хотел бы начать с хорошей книгой о Ruby On Rails, прежде чем продолжить. Вот бесплатный: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=4.0

Смежные вопросы