Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从Rails视图手动设置控制器变量_Ruby On Rails_Ruby_Postgresql_Nokogiri - Fatal编程技术网

Ruby on rails 如何从Rails视图手动设置控制器变量

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

我试图从视图中输入一个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
这是我的观点:

<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 %>