Рельсы не отображают частичное

#ruby-on-rails #partials

#ruby-on-rails #частичные

Вопрос:

Я не могу заставить свою страницу отображать частичное. Когда я вытаскиваю его на сервер, он вообще не отображает частичное, а просто пропускает его. Нет сообщений об ошибках.

 # edit.html.erb    
<%= link_to("<< Back to List", {:action => 'list'}, :class => 'back=link')%>

<div class="subject edit">
    <h2>Edit Subject</h2>
    
    <%= form_for(:subject, :url => {:action => 'update', :id=>@subject.id}) do |f| %>
    
        <% render :partial => 'form', :locals => {:f => f} %>
    
        <div class="form-buttons">
            <%= submit_tag("Update Subject")%>
        </div>
    
    <% end %>
</div>
 

и это _form.html.erb

 <table summary="Subject form fields">
    <tr>
        <th>Name</th>
        <td><%= f.text_field(:name) %></td>
    </tr>
    <tr>
        <th>Position</th>
        <td><%= f.text_field(:position) %></td>
    </tr>
    <tr>
        <th>Visible</th>
        <td><%= f.text_field(:visible) %></td>
    </tr>
</table>
 

Ответ №1:

Вам нужен = знак:

 <%= render :partial => 'form', :locals => {:f => f} %>
 

(у вас было <% render .... )

Комментарии:

1. Я не могу поверить, что я это сделал. Снова! Но однажды здесь, чтобы отметить, что в Rails 4 вы можете опустить частичные и локальные значения : = render 'form', f: f . Намного короче.

2. это распространенная ошибка таких нубов, как я, ду, спасибо, что указали на это