У меня проблема в приложении Rails 3.Я применяю Ajax к форме, но не могу отобразить вновь созданный объект в моем представлении.На данный момент проблема заключается в счетчике Rails 3.Когда я отправляю форму без перезагрузки страницы, моя консоль отображает следующее:
ActionView::Template::Error (undefined local variable or method `superlative_counter' for #<#<Class:0x105bdd4a8>:0x105bd6a40>):
1: <% if superlative_counter + 1 == superlative_count && superlative_count > 1 %>
2: <li class="superlative">
3: and <span title="<%=h superlative.name %>"><%=h superlative.body %><p class="deleteSup"><%= link_to 'x', superlative_path(superlative), :method => :delete, :remote => true, :confirm => "Are you sure you want to remove this superlative?" %></p></span>
4: </li>
Будучи новичком, я не уверен, где определить superlative_counter
в моем коде.Я думал, что счетчик был только что включен в Rails:
Rails также делает переменную счетчика доступной в части, вызываемой коллекцией, названной в честь члена коллекции, за которым следует _counter.Например, если вы визуализируете @products, внутри партиала вы можете обратиться к product_counter, чтобы узнать, сколько раз визуализировался партиал.Это не работает в сочетании с параметром: as =>: value.
Вот как я отображаю свою коллекцию:
<li><%= "#{@profile.first_name}" %> is most likely to: </li><%= render :partial => 'superlatives/superlative', :collection => @profile.superlatives, :locals => {:superlative_count => @profile.superlatives.length} %>
Вот мой _superlative.html.erb
частичный:
<% if superlative_counter + 1 == superlative_count && superlative_count > 1 %>
<li class="superlative">
and <span title="<%=h superlative.name %>"><%=h superlative.body %><p class="deleteSup"><%= link_to 'x', superlative_path(superlative), :method => :delete, :remote => true, :confirm => "Are you sure you want to remove this superlative?" %></p></span>
</li>
<% elsif superlative_count == 1 %>
<li class="superlative">
<span title="<%=h superlative.name %>"><%=h superlative.body %><p class="deleteSup"><%= link_to 'x', superlative_path(superlative), :method => :delete, :remote => true, :confirm => "Are you sure you want to remove this superlative?" %></p></span>
</li>
<% else %>
<li class="superlative">
<span title="<%=h superlative.name %>"><%=h superlative.body %><p class="deleteSup"><%= link_to 'x', superlative_path(superlative), :method => :delete, :remote => true, :confirm => "Are you sure you want to remove this superlative?" %></p></span>,
</li>
<% end %>
Если кто-нибудь может помочь мне выяснить, где я должен определить счетчик, я буду признателен за это!