2012-03-24 17 views
0

これは初めてのカスタムアクションの作成で、少し失われています。私は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"=>""}

は図である。

パラメータは、私が提出押したときにかかわらず、正しく渡されます。

答えて

1

を定義することはありません[ "URL"] [ "traveldeal"]のparamsを使用して

を試してみてください。

+0

ありがとうございました! – gemmy

0

は、あなたがあなたのアクションでurl = @traveldeal.url@traveldeal = Traveldeal.new(params[:traveldeal])が必要@traveldeal

関連する問題