Я создаю simple_form, который позволяет пользователям создавать новую статью в моей базе данных, предоставляя ссылку на оригинальную статью. Если пользователь предоставляет URL-адрес («original_url»), я буду использовать Nokogiri для получения информации.Rails + Nokogiri: controller create
Я получаю следующее сообщение об ошибке: «неявное преобразование nil в String», которое говорит мне, что вход simple_form из поля «original_url» недоступен для использования в контроллере/Nokogiri.
Возможно ли использовать переменную из simple_form перед ее сохранением?
Мой контроллер - создать код:
def create
if @original_url = nil
@article = Article.new(article_params)
else
@url = params[:original_url] #### I think this is where the problem is. How do I pass the "original_url" input into the controller? ####
data = Nokogiri::HTML(open(@url))
headline = data.at_css(".entry-title").text.strip
@article = Article.new(:headline => headline)
end
respond_to do |format|
if @article.save
format.html { redirect_to @article, notice: 'Article was successfully created.' }
format.json { render :show, status: :created, location: @article }
else
format.html { render :new }
format.json { render json: @article.errors, status: :unprocessable_entity }
end
end
end
Должен ли я называть "original_url" переменную по-другому?
кажется 'PARAMS [: original_url]' не содержит никакого значения – hgsongra
вы, пожалуйста, укажите свой 'form' код для' original_url' парам? – hgsongra
«Я буду использовать Нокогори, чтобы получить информацию». Важно понять, что Нокогири ничего не «приносит». Он только анализирует и позволяет вам искать/извлекать/изменять/калечить. Как вы извлекаете данные - это выбор, и чаще всего мы используем OpenURI, который предоставляет возможность открывать URL-адрес с помощью 'open' или другого HTTP-клиента. –