2017-01-22 94 views
0

我試圖從視圖中輸入一個URL並將其傳遞到我的控制器並將其設置爲等於一個變量。我現在正在嘗試它,但它只是一直返回零。如何從Rails視圖手動設置控制器變量

這是控制器/職位:

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

我怎樣才能輸入一個網址,並把它傳遞給等於該變量?

+1

實例變量只能通過從控制器=>視圖,而不是相反。您需要將信息作爲參數傳遞給表單,並使用'params'從控制器讀取。它看起來像你的'link_to'沒有傳遞來自text_field的信息。閱讀rails格式的幫助。 –

+0

你使用Nokogiri來解析你自己的HTML嗎? –

回答

0

您不能直接將視圖中的變量設置爲控制器,但可以從視圖中發佈請求。

像:

<%= form_tag('/run') do %> 
    <%= text_field_tag 'my_url' %> 
    <%= submit_tag %> 
<% end %> 
在你的控制器運行操作訪問

然後參數:p params[:my_url]

記得啓用的路線運行動作POST方法:post 'run', to: 'your_controller#run'

相關問題