В моем приложении на Rails результаты в формате JSON отображаются в ответе просмотра HTML - PullRequest
1 голос
/ 08 ноября 2011

В приложении Rails 3.1 у меня есть контроллер, возвращающий набор объектов (дочерних элементов) в индексном представлении, используя этот код:

    def index
        @children = Child.all

        @base_class = "children-index"
        @title = "Your Children"

        respond_to do |format|
            format.html # children/index.html.erb
            format.json { render :json => @children }
        end
    end

Представление index.html.erb написано так:

<h1><%= title %></h1>
<ul>
  <%= @children.each do |child| %>
    <li><%= link_to child.fullname, child_path(child) %></li>
  <% end %>
</ul>

По какой-то причине ответ JSON добавляется в ответ HTML, и я не могу определить причину. Ни у одного из моих других представлений индекса нет этой проблемы, и их код очень близок к тому же.

John Jake Smith Jr

Jane Ann Doe

[#<Child id: 1, firstname: "John", middlename: "Jake", lastname: "Smith", suffix: "Jr", gender: "Male", dob_actual: "2011-01-05", dob_expected: "2011-01-01", height: 30, weight: 40, created_at: "2011-10-28 21:32:54", updated_at: "2011-10-28 21:32:54">, #<Child id: 2, firstname: "Jane", middlename: "Ann", lastname: "Doe", suffix: "", gender: "Female", dob_actual: "2011-05-05", dob_expected: "2011-05-01", height: 30, weight: 12, created_at: "2011-11-07 18:08:54", updated_at: "2011-11-07 18:08:54">]

Ответы [ 2 ]

5 голосов
/ 08 ноября 2011

Это не JSON, это inspect вывод. Вы получаете это, потому что each возвращает @children, и вы используете <%= здесь:

<%= @children.each do |child| %>

Вы хотите именно это:

<% @children.each do |child| %>
0 голосов
/ 08 ноября 2011

Вы забыли сделать @children.to_json в вашем контроллере?

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