Ruby on rails 如何在控制器中引用从表单_传递的属性
这是我第一次创建自定义操作,所以我有点迷路了。我创建了一个表单,在其中输入URL。这个URL被传递到我的控制器,在那里我使用URL解析html(通过Nokogiri) 我遇到的问题是,我不知道如何使用正在传递的URL参数 以下是我的控制器中的操作: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))
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