2015-03-24 2 views
0

Я пытался включить React.js в мое приложение Rails для разбивки страницы на страницу index для моей модели Items. Я слежу за this example и пытаюсь включить его в свой текущий проект. Мне удалось интегрировать все в точку, в которой не отображаются ошибки. Но теперь индекс страницы только превратился в текст, этот текст является представлением @items и она будет отображаться с использованием render действияRails и React возвращают только текстовую страницу

items_controller.rb:

class ItemsController < ApplicationController 
    # ... 
    def index 
     @items = 
      Kaminari.paginate_array(Item.first(10)).page(params[:page]) 
     #... 
     render json: { 
      items: @items, 
      meta: { 
       current_page: @items.current_page, 
       next_page: @items.next_page, 
       prev_page: @items.prev_page, 
       total_pages: @items.total_pages, 
       total_count: @items.total_count 
      } 
     } 
    end 
end 

Я не знаю, почему это происходит, Я следил за гидом, но ничего не получал. Я даже не знаю, какой код действительно идет не так, потому что от него нет никаких ошибок. Кто-нибудь знает, почему это происходит?

Website main page, работает отлично

Index page for Item model, полностью текст

Repo for my app, я оставил сообщение фиксации, показывая, что я изменил для React

+2

Вы знаете, что вы рендер как json? –

+0

Я не слишком знаком с Джоном, но, похоже, это так. Однако после того, как действие 'index' запускается, представление должно отображаться? – user2361174

+0

И я не familir с react.js. Теперь я вижу пример использования json. Но попробуйте изменить render json: ... для рендеринга html: .., чтобы увидеть, что произошло. –

ответ

0
<%= link_to "ITems", items_path(format: :json) %> 

отправит страницу запрашивающий ответ JSon от ваш сервер. Обычно это будет из запроса ajax.

<%= link_to "ITems", items_path %> 

однако делает http-запрос. У вас есть только один обработчик (format.json), который принимает запрос и с радостью преобразует ответ в json. Но так как ваш КЛИЕНТ запросил ответ как html (проверьте ваши заголовки запроса), он выгружает обработанный json в ответ html

+0

Я получаю сообщение об ошибке: 'Шаблон отсутствует Отсутствует элемент/индекс шаблона/application/index с {: locale => [: en],: formats => [: json],: variantants => [], : handlers => [: erb,: builder,: raw,: ruby,: coffee,: haml,: jbuilder]}. Поиск: * "/home/username/.rvm/gems/ruby-2.1.5/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates" * "/ home/username/ROR-SuperMarket/app/views "*" /home/username/.rvm/gems/ruby-2.1.5/gems/kaminari-0.16.3/app/views "*" /home/username/.rvm/gems/ruby-2.1. 5/драгоценные камни/веб-консоли 2.0.0.beta3/app/views "' Я предполагаю, что у меня нет шаблона для индекса, как бы я его получил? – user2361174

Смежные вопросы