«.each do» оставляет строку вроде «# <Table: 0x224af70>» - PullRequest
0 голосов
/ 23 февраля 2011

Я пытаюсь подготовить объект json для моего приложения rails.Вот мой код:

#videos_controller

 def show
     @video = Video.find(:all,
                         :conditions => { :published => true, :trash => false },  
                         :order => 'RANDOM()', :limit => 1)


    respond_to do |format|
      format.html # show.html.erb
      format.json {render :partial => "videos/show.json"}
    end
  end


#_show.json
<%= @video.each do |video| %>
{
    "video_link": "<%= video.link %>",
    "video_id": "http://website.com/videos/each/<%=video.id%>"
}
<% end %>

, но в videos / show.json я получаю нечто подобное?Я думаю, из-за этого, это не позволяет мне работать с объектом JSON должным образом.Я знаю, что ответ довольно прост, но просто не могу его получить.Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 23 февраля 2011

Уберите знак равенства в строке <%= @video.each do |video| %>, так что это просто <% @video.each do |video| %>. Сегмент, который вы видите, является методом to_s по умолчанию, который возвращается каждым методом.

2 голосов
/ 23 февраля 2011

Измените это:

<%= @video.each do |video| %>

на это:

<% @video.each do |video| %>

Поскольку вы выводите текст в теле цикла, вы не хотите выводить сам цикл(результатом которого является сам перечислимый).

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