사용자가 원본 기사에 대한 링크를 제공하여 데이터베이스에 새 기사를 만들 수있는 simple_form을 만듭니다. 사용자가 URL ("original_url")을 제공하면 Nokogiri를 사용하여 정보를 가져옵니다.Rails + Nokogiri : 컨트롤러 만들기
"nil을 String으로 암시 적으로 변환하지 않습니다."필드에서 "original_url"필드의 simple_form 입력을 컨트롤러/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"변수를 호출해야합니다 : -
내 컨트롤러 코드를 만들?
if @original_url = nil
그래서
@original_url
항상
nil
되고 조건이 true 결코 :
것 같다'의 PARAMS [: ORIGINAL_URL]' – hgsongra
당신이'original_url'의 PARAM에 대한'form' 코드를 제공하시기 바랍니다 것입니다 어떤 값을 포함하지 않는 이유는 무엇입니까? – hgsongra
"Nokogiri를 사용하여 정보를 가져옵니다." Nokogiri가 아무 것도 "가져 오지"않는다는 것을 이해하는 것이 중요합니다. 그것은 파싱하고 검색/추출/변경/mangle 만 허용합니다. 데이터를 가져 오는 방법은 가져 오는 것이고, 우리는 OpenURI를 사용합니다. OpenURI는'open' 또는 다른 HTTP 클라이언트를 사용하여 URL을 여는 기능을 제공합니다. –