Ruby on rails 如何从Rails视图手动设置控制器变量
我试图从视图中输入一个URL,并将其传递到我的控制器中,然后将其设置为一个变量。我现在就这样尝试,但它总是返回零 这是主计长/职位:Ruby on rails 如何从Rails视图手动设置控制器变量,ruby-on-rails,ruby,postgresql,nokogiri,Ruby On Rails,Ruby,Postgresql,Nokogiri,我试图从视图中输入一个URL,并将其传递到我的控制器中,然后将其设置为一个变量。我现在就这样尝试,但它总是返回零 这是主计长/职位: def run url = params[:url_toget] puts url doc = Nokogiri::HTML(open(url)) post = Post.create do |post| post.body = doc.at_css("body") post.url_toget = url end end
def run
url = params[:url_toget]
puts url
doc = Nokogiri::HTML(open(url))
post = Post.create do |post|
post.body = doc.at_css("body")
post.url_toget = url
end
end
这是我的观点:
<div class="form-group">
<%=text_field :url_toget, class:"form-control", placeholder:"Recipe URL" %>
</div>
<%= link_to "Rake", posts_run_path %>
我如何输入一个URL并使其传递给该变量 您不能直接将变量从视图设置到控制器,但可以从视图发布请求 比如:
然后在控制器运行操作中访问参数:p params[:my\u url]
请记住为路由中的运行操作启用POST方法:
POST'run',to:'your_controller#run'
实例变量仅从controller=>视图传递,反之亦然。您需要将信息作为参数传递到表单中,并使用params
从控制器读取信息。您的链接似乎没有从文本字段传递信息。阅读rails表单以获得帮助。您是否使用Nokogiri解析自己的HTML?
<%= form_tag( '/run' ) do %>
<%= text_field_tag 'my_url' %>
<%= submit_tag %>
<% end %>