私は、ユーザが元の記事へのリンクを提供することでデータベースに新しい記事を作成できるようにする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" 変数を呼び出す必要があります: -
私のコントローラのコードを作成しますか?
に思え 'paramsは[:original_url]' – hgsongra
あなたは 'original_url'のPARAMのためのあなたの' form'コードを提供してくださいます任意の値が含まれていないのですか? – hgsongra
"ノコギリを使って情報を取得します。"ノコギリが何かを「取っていない」ことを理解することは重要です。それはあなただけを解析し、検索/抽出/変更/マングルすることができます。どのようにデータを取得するかは、どのようなものであり、最も一般的にはOpenURIを使用します。これは、 'open'や別のHTTPクライアントを使ってURLを開く機能を提供します。 –