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

时间:2017-01-22 21:15:13

标签: 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

这是观点帖子:

<div class="form-group">
<%=text_field :url_toget, class:"form-control", placeholder:"Recipe URL" %>
</div>

<%= link_to "Rake", posts_run_path %>

如何输入URL并将其传递给该变量?

1 个答案:

答案 0 :(得分:0)

您无法直接将视图中的变量设置到控制器,但您可以从视图中发布请求。

像:

<%= form_tag( '/run' ) do %>
  <%= text_field_tag 'my_url' %>
  <%= submit_tag %>
<% end %>

然后在您的控制器运行操作中访问参数:p params[:my_url]

请记住为路由中的运行操作启用POST方法:post 'run', to: 'your_controller#run'