Я пытаюсь разобрать статический файл JSON из моего корневого каталога в уже предопределенный объект, но я смущен тем, как заставить объект «читать» каждый атрибут в файле JSON и отображать его как собственный. Надеюсь, я не сделаю это более запутанным из того, что это такое?Разбор статического файла JSON в объект rails
Некоторые из моего кода:
class PostsController < ApplicationController
# before_action :set_post, except: [:index, :show]
# @@posts = File.read('app/assets/javascripts/flickr_feed.json')
# @posts = JSON.parse(string)
# GET /posts
# GET /posts.json
def index
@posts = Post.all
respond_to do |format|
format.html
format.json { render json: @@posts }
# format.json { render json: @@posts }
end
end
# GET /post/1
# GET /post/1.json
def show
@post = @post.assign_attributes JSON.parse(File.read('app/assets/javascripts/flickr_feed.json'))
respond_to do |format|
format.html
format.json { render json: @post }
end
end
...
Если я иду в localhost:3000/posts.json
я вижу выход желание ..
{
"title": "Recent Uploads tagged potato",
"link": "https://www.flickr.com/photos/tags/potato/",
"description": "",
"modified": "2015-11-21T08:41:44Z",
"generator": "https://www.flickr.com/",
"posts": [ // before was "items":
{
"title": "Hokkaido potato with butter",
"link": "https://www.flickr.com/photos/taking5/22873428920/",
"media": {"m":"https://farm6.staticflickr.com/5813/22873428920_3cac20cc47_m.jpg"},
"date_taken": "2015-07-18T08:16:24-08:00",
"description": " <p><a href=\"https://www.flickr.com/people/taking5/\">Taking5<\/a> posted a photo:<\/p> <p><a href=\"https://www.flickr.com/photos/taking5/22873428920/\" title=\"Hokkaido potato with butter\"><img src=\"https://farm6.staticflickr.com/5813/22873428920_3cac20cc47_m.jpg\" width=\"240\" height=\"180\" alt=\"Hokkaido potato with butter\" /><\/a><\/p> <p>Yummy.<\/p>",
"published": "2015-11-21T08:41:44Z",
"author": "[email protected] (Taking5)",
"author_id": "[email protected]",
"tags": "japan hokkaido potato hakodate morningmarket"
}
]
}
...
Но если я иду в posts#index
я не вижу ничего. Я знаю, что не правильно разбираю данные, но я смущаюсь о том, как это сделать. Любая помощь будет очень высоко оценена. Благодаря
TL; DR: Я хотел бы разобрать каждый пункт из JSON файла так, чтобы быть в состоянии сделать post.title
, post.description
и т.д.
EDIT 1: Update на код опечаток.
EDIT 2: Обновление на код в контроллере
Подсказка: когда вы делаете 'format.html' он ожидает блок кода (код между фигурными скобками, как у вас есть для' format.json') –
@Sunil D , попробовал то, что вы рекомендовали '' 'format.html {render @posts}' '', но теперь он говорит, что мне не хватает частичного, и когда я создаю частичный '' '<% = render partial: @posts - %> '' 'Я получаю' '' слишком сложную ошибку''' – intercoder