Rails передает локальные параметры через link_to в js, а затем загружает их частично - PullRequest
1 голос
/ 09 сентября 2011

Я пытаюсь передать локальную переменную в частичное с помощью link_to. Я пробовал много разных вещей, но, похоже, это не работает. Файл js загружает частичный штраф, он просто не имеет местных жителей. Это то, что я имею, спасибо за любое направление!

_health.html.erb (это частичное в index.html модели контактов)

<% @comments = Comment.find_all_by_api(@api) %>
<%= link_to 'Read Comments', comments_path(:comments => @comments), :action => 'comments',  :remote => true %> 

comments.js.erb

$("#comments").html("<%= escape_javascript(render(:partial => 'comment', :locals => {:comments => :comments})) %>");

comment.html.erb

<% unless @comments.blank? %>
 <% @comments.each do |c| %>

   <%= c %><br />

 <% end %>
<% end %>

contacts_controller.rb

  def comments  
   respond_to do | format |  
      format.js {render :layout => false}  
   end
 end

1 Ответ

1 голос
/ 10 сентября 2011

Частичное не знает о комментариях, потому что вы никогда не устанавливали их.Действие комментариев в контроллере должно выглядеть следующим образом:

def comments
   @comments = Comment.find(params[:id])
   respond_to do | format |

(замените params[:id] на соответствующий параметр из вашего маршрута)

Вы выполняете запрос AJAX и, поскольку httpбез сохранения состояния, действие comments ничего не знает ни о каких предыдущих запросах - это означает, что комментарии для _health.html.erb перестали существовать для действия comments в контроллере.

...