Это похоже на дубликат вопроса, но ответы на другие посты, похоже, не работают для моей проблемы здесь.
Мне нужно отобразить два элемента JSON здесь в моем методе индекса в моем контроллере:
def index
@user = User.all
@libraries = Library.all.order(:created_at)
user_cards = current_user.libraries
render :json => @libraries, :include => :user
render :json => user_cards
end
Я попытался сделать это так (не удалось с ошибкой 500):
render :json => @libraries, user_cards, :include => :user
И я также попытался сделать это таким образом (также не удалось с ошибкой 500): render :json => @libraries :include => [:user, :user_cards]
UPDATE
Это самая последняя попытка правильно отобразить json:
def index
@user = User.all
@libraries = Library.all.order(:created_at)
user_cards = current_user.libraries
render json: {
user_cards: user_cards,
libraries: @libraries.as_json(include: [:user])
}
end
Проблема в том, что теперь я получаю сообщение об ошибке libraries
во всем приложении. Если я просто отображаю json, как у меня изначально (render :json => @libraries, :include => :user
), я не получаю эту ошибку. Итак, я предполагаю, что способ, которым я имею это, все еще не корректен. Точная ошибка на libraries
вызывается в одном из моих компонентов React, где я использую фильтр:
Ошибка: Uncaught TypeError: this.props.librarys.filter is not a function
Расположение ошибки:
let filteredCards = this.props.librarys.filter(
(library) => {
return library.title.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1 || library.desc.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1
}
)