Я пытаюсь сохранить данные новостей для акций из API в моей базе данных "Заголовок".Но я думаю, что мои параметры контроллера неверны, и поэтому я не могу заполнить элемент, чтобы сохранить его на моем столе.
Я попытался изменить параметры @headline = Headline.new_from_lookup (params [: stock]) на: ticker: symbol, но ничего не изменилось.По-прежнему получает неопределенный метод `save 'для nil: NilClass
Routes.rb
Rails.application.routes.draw do # Приоритет основан на порядке создания: сначала создан -> самый высокий приоритет,# Посмотрите, как все ваши маршруты размечены с помощью «рейковых маршрутов».
root 'headlines # new'
resources: headlines
end
headline.rb
Заголовок класса
def self.new_from_lookup(symbol)
begin
looked_up_stock = IEX::Resources::Quote.get(symbol)
looked_up_news = IEX::Resources::News.get(symbol)
new(ticker: looked_up_stock.symbol, name: looked_up_stock.companyName, headline: looked_up_news.first.headline, summary: looked_up_news.first.summary, url: looked_up_news.first.url)
rescue Exception => e
return nil
end
end
end
headline_controller.rb
класс HeadlinesController
def new
@headline = Headline.new
end
def create
# takes input from the search page then finds the stock info with the model headline.rb
@headline = Headline.new_from_lookup(params[:symbol])
@headline.save # saves the headline info to the database
redirect_to headline_path(@headline) # directs the user to the show path
end
def show
@headline = Headline.find(params[:id]) # shows the news from the database that was just entered
end
end
new.html.erb
<h1>Choose Stock News</h1>
<%= form_for @headline do |f| %>
<p>
<%= f.label :ticker %>
<%= f.text_field :ticker %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
</body>
show.html.erb
Отображение выбранных биржевых новостей
Тикер:
Имя:
Заголовок:
Сводка:
URL:
Создано:
Обновлено: