从rails

时间:2016-12-29 16:02:57

标签: ruby-on-rails ruby

我之前已经多次询问过这个问题(例如herehere,仅举几例)但我无法解决这个问题。我正在使用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按钮?我是否也需要修改我的路线?

1 个答案:

答案 0 :(得分:3)

您还需要创建新路线

post 'scrape' => 'posts#scrape', as: :scrape

然后您就可以访问scrape_pathscrape_url

button_to 'Scrape', scrape_path