如何调试带有500个错误的嵌入式javascript

如何调试带有500个错误的嵌入式javascript,javascript,ruby-on-rails,vue.js,api-design,Javascript,Ruby On Rails,Vue.js,Api Design,上下文 我想为自行车租赁公司(商店)提供一个选项,将客人重定向到我平台上的在线预订流程,以便他们可以让客户预订商店的自行车。(例如,在线预订流程仅适用于他们的店铺) 当前步骤 我的第一步是创建一个嵌入式javascript表单(form\u availability),其中shop网站访问者可以选择到达日期,离开日期,然后查看可用的自行车类别。为了澄清,我想展示一下带有商店到达和离开选项的初始表单 方法 我创建了一个api/v1/shops(路由、控制器和视图) 我使用webpacker:vu

上下文 我想为自行车租赁公司(
商店
)提供一个选项,将客人重定向到我平台上的在线预订流程,以便他们可以让客户预订
商店
自行车
。(例如,在线预订流程仅适用于他们的店铺)

当前步骤 我的第一步是创建一个嵌入式javascript表单(
form\u availability
),其中
shop
网站访问者可以选择
到达日期
离开日期
,然后查看可用的
自行车类别
。为了澄清,我想展示一下带有
商店
到达和离开选项的初始表单

方法

  • 我创建了一个
    api/v1/shops
    (路由、控制器和视图)
  • 我使用webpacker:vue创建了一个
    embed.js
  • 我在自己的应用程序中实现了
    ,以进行测试(url:
    http://localhost:3000/en/shops/58/website_integration
  • 各商店的
    网站
    http://localhost:3000
问题

这是我第一次这样做,我收到一条错误消息,我不知道如何处理/解决

控制台

embed.js:23 GET http://localhost:3000/api/v1/shops/http%3A%2F%2Flocalhost%3A3000%2Fen%2Fshops%2F3%2Fwebsite_integration/form_availability 500 (Internal Server Error)

./app/javascript/packs/embed.js @ embed.js:23
__webpack_require__ @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ bootstrap:83
代码

routes.rb

namespace :api, defaults: { format: :json } do
    namespace :v1 do
      resources :shops, only: [:show] do
        get :form_availability , on: :member
      end
    end
  end
controller/api/v1/shops\u controller.rb

class Api::V1::ShopsController < Api::V1::BaseController
  def form_availability
    binding.pry
    @shop = Shop.by_url(params[:id])
    render "shops/form_availability"
  end
end
views/api/vi/shop/form_availability.json.jbuilder

json.extract! @shop, :id, :name, :slug, :description, :street, :street_number, :zipcode, :city, :country, :email, :phone, :website, :vat_number, :currency, :photo, :test_modus, :default_vat, :price_notation, :paytime, :billing_id, :default_shop_language, :default_age_table, :inv_pay_deadline

找到问题,
@park
是一个数组。

这可能会对您有所帮助-
class Api::V1::ShopsController < Api::V1::BaseController
  def form_availability
    binding.pry
    @shop = Shop.by_url(params[:id])
    render "shops/form_availability"
  end
end
class Shop < ApplicationRecord
  has_many :bike_categories, dependent: :destroy
  has_many :bikes, through: :bike_categories
  has_many :reservations, dependent: :destroy

  def self.by_url(url)
    binding.pry
    uri = url.split("?").first
    uri.sub!(/\/$/, '')

    where(website: uri)
  end
end

class Reservation < ApplicationRecord
  belongs_to :shop
  belongs_to :bike
end

class Bike < ApplicationRecord
  belongs_to :bike_category
  has_many :reservations, dependent: :destroy
end

class BikeCategory < ApplicationRecord
  belongs_to :shop
  has_many :bikes, dependent: :destroy
end
let url = window.location.href


fetch(`http://localhost:3000/api/v1/shops/${encodeURIComponent(url)}/form_availability`,{
  headers: {accept: 'application/json'}
})
.then(response => response.json())
.then(data => console.log(data))
json.extract! @shop, :id, :name, :slug, :description, :street, :street_number, :zipcode, :city, :country, :email, :phone, :website, :vat_number, :currency, :photo, :test_modus, :default_vat, :price_notation, :paytime, :billing_id, :default_shop_language, :default_age_table, :inv_pay_deadline