Rails - 从种子文件访问路由

Rails - Access to routes from seedfile

我想为一个有很多文件的页面播种,现在我这样做:

PageFile.create!([
  { file_body: seedfile('/file1.jpg'), page_id: Page.where(path: 'my_page').take.id }

但我认为它不灵活,我希望它依赖于 routes.rb 数据:

get 'my_page' => 'pages#my_page', as: :my_page

我试过了:

page_id: Page.where(path: my_page_path) }
page_id: Page.where(path: :my_page_path) }
page_id: Page.where(path: Page.select(:my_page_path)) }

全部 return 个错误或为零。我做错了什么?

使用 url 助手:

Rails.application.routes.url_helpers.my_page_path

对于url:

Rails.application.routes.url_helpers.my_page_url

注意:url将添加默认主机,要更改主机,您需要在application.rb中添加以下内容: Rails.application.routes.default_url_options[:host] = "mysite.com"

要通过 rake 访问它,您可以 include Rails.application.routes.url_helpers 在文件中并正常访问 my_page_path