Rails 5:发布路由不适用于根网址

时间:2019-02-10 13:29:30

标签: ruby-on-rails ajax

我目前正在我的主页上添加调查表。然后,访客根据输入获得建议。我正在发送ajax请求,以将建议传递给用户。

由于该表单位于我的首页上,因此我需要为post创建一条root url路线。

我的Ajax代码:

  $.ajax({
    data: 'impressions=' + impressions,
    dataType: 'script',
    type: 'post',
    url: "/pages/home"
  });

当我在pages/home中使用url时,出现以下错误:

ActionController::RoutingError (No route matches [POST] "/pages/home"):

当我仅在/中使用url时,出现此错误:

Processing by RegistrationsController#create as JS
  Parameters: {"impressions"=>"278"}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 3ms (ActiveRecord: 0.0ms)

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

通过某种方式RegistrationsController

这些是我的路线

  root to: 'pages#home'
  # pages/home/:impressions not working
  post 'pages/home/:impressions' => 'pages#home'

PagesController主页:

  def home
    @impressions = params[:impressions]
  end

1 个答案:

答案 0 :(得分:1)

更改

post 'pages/home/:impressions' => 'pages#home'

post 'pages/home' => 'pages#home'