Ruby on rails 如何在控制器中引用从表单_传递的属性

Ruby on rails 如何在控制器中引用从表单_传递的属性,ruby-on-rails,ruby-on-rails-3,nokogiri,Ruby On Rails,Ruby On Rails 3,Nokogiri,这是我第一次创建自定义操作,所以我有点迷路了。我创建了一个表单,在其中输入URL。这个URL被传递到我的控制器,在那里我使用URL解析html(通过Nokogiri) 我遇到的问题是,我不知道如何使用正在传递的URL参数 以下是我的控制器中的操作: def newdeal url = @traveldeal.url #this is where I want to use the URL from my form_for doc = Nokogiri::HTML(open(url))

这是我第一次创建自定义操作,所以我有点迷路了。我创建了一个表单,在其中输入URL。这个URL被传递到我的控制器,在那里我使用URL解析html(通过Nokogiri)

我遇到的问题是,我不知道如何使用正在传递的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
我得到的错误是
未定义的方法“url”
。我尝试过像
url=:url
甚至
url=“#{:url}”
这样的操作,但是我得到了nil类错误,所以看起来我只是错误地引用了它

但当我按submit时,参数传递正确:

{“utf8”=>“✓",  "真实性\u令牌“=>”tgpyiuvo3dtranvvvd6hashqptv7yxcmm1j0dxrsfpr4=“,”traveldeal“=>{”url“=>”http://www.sampleurl.com“},”按钮“=>”}

以下是视图:

<%= 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 %>
newdeal_路径,:method=>'post'do | f |%>
“圆形”%>
“acctSubmit”%>
谢谢。

尝试使用params[“traveldeal”][“url”]


您从未定义过@traveldeal

在您的操作中需要
@traveldeal=traveldeal.new(params[:traveldeal])
之前的
url=@traveldeal.url