1
我看到这个问题已被问过几次之前(即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
我想为scrape
方法创建一个views/posts/index.html.erb
按钮,但我不能让按钮工作。我很习惯使用脚手架方法,我不知道如何创建自定义方法。
一些我试过的方法:
<%= button_to "scrape", action: "scrape"%>
<%= "scrape me", { :controller => "posts", :action => "scrape"}, class: 'btn btn-primary' %>
<%= button_to "scrape", posts_scrape_path %>
如何我index.html.erb
触发scrape
方法创建一个scrape
按钮?我是否也需要修改我的路线?
感谢访问!有效 :)。如果我添加后续问题,你介意吗?在'post'scrape'=>'posts#scrape',as:scrape' line,'scrape'后的'scrape'是指什么?而''scrape'在'as::scrape'中是指什么? – Iggy
首先'scrape'指的是路线映射到的URL,比如'www.example.com/scrape'。第二个'scrape'是路由的名字,并且由此创建了url助手'scrape_path'和'scrape_url'。 – Iceman
如果我认为它是正确的:如果它说'get'scrape'',它会创建'localhost:3000/scrape'? 关于第二个':scrape',它与第一个有什么不同?非常感谢你的回复!我从中学到很多东西。 – Iggy