我之前已经多次询问过这个问题(例如here,here,仅举几例)但我无法解决这个问题。我正在使用rails 5.
我的posts_controller
方法中有一个名为scrape
的方法。它创建了几个对象实例。
class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
def scrape
destroy_old_data
@some_var = Scrape.create("something")
end
...
end
我想在views/posts/index.html.erb
方法中为scrape
方法创建一个按钮,但我无法使该按钮生效。我习惯使用脚手架方法,但我不知道如何创建自定义方法。
我尝试过的一些方法:
<%= button_to "scrape", action: "scrape"%>
<%= "scrape me", { :controller => "posts", :action => "scrape"}, class: 'btn btn-primary' %>
<%= button_to "scrape", posts_scrape_path %>
如何在scrape
中创建触发index.html.erb
方法的scrape
按钮?我是否也需要修改我的路线?
答案 0 :(得分:3)
您还需要创建新路线
post 'scrape' => 'posts#scrape', as: :scrape
然后您就可以访问scrape_path
和scrape_url
button_to 'Scrape', scrape_path