これは初めてのカスタムアクションの作成で、少し失われています。私はURLを入力するフォームを作成しました。このURLは私のコントローラに渡され、URLを使ってhtmlを解析します(Nokogiri経由で)。コントローラでform_forから渡される属性を参照する方法
私が抱えている問題は、渡されているこのURLパラメータの使い方がわかりません。ここで
は私のコントローラ内のアクションです:私は取得しています
def newdeal
url = @traveldeal.url #this is where I want to use the URL from my form_for
doc = Nokogiri::HTML(open(url))
title = doc.at_css("#content//h2/a").text
price = doc.at_css(".integer").text[/[0-9\.]+/]
link = doc.at_css("#content//h2/a")[:href]
desc = doc.at_css(".descriptor").text
Traveldeal.create(:title => title, :price => price, :url => link, :description => desc)
flash[:success] = "Deal successfully added!"
redirect_to root_path
end
エラーがundefined method 'url'
です。私はurl = :url
、さらにはurl = "#{:url}"
のようなことをやってみましたが、クラスエラーが発生しないので、間違って参照しているようです。
<%= form_for @traveldeal, :url => newdeal_path, :method => 'post' do |f| %>
<div class="field">
<%= f.label :url %>
<%= f.text_field :url, :class => "round" %>
</div>
<div class="action">
<%= button_tag "", :class => "acctSubmit" %>
</div>
<% end %>
ありがとう:ここ
{"utf8"=>"✓", "authenticity_token"=>"tGPYiuVO3dtRaNVvd6HAshqpTV7yXCmM1j0dXRSfpR4=", "traveldeal"=>{"url"=>"http://www.sampleurl.com"}, "button"=>""}
パラメータは、私が提出押したときにかかわらず、正しく渡されます。
ありがとうございました! – gemmy