Я новичок в Ruby on Rails и в настоящее время пытаюсь создать небольшой тестовый веб-сайт для меня. У меня есть проблема в моем коде, в котором указывается «неопределенный метод` service_providers »для # " строка кода, которая производит ошибку заключается в следующем:Неопределенный метод, когда .build new Object
def new
@service_provider = current_user.service_providers.build(serviceprovider_params)
end
Моя база данных Модель Таблица„Пользовательские“HAS_ONE„ServiceProvider“has_many„Услуги“. Я использую rubygem «devise» для пользовательской модели. Я попытался передать идею микросоты «Учебник Ruby on Rails» (https://www.railstutorial.org/book/user_microposts) в моем примере приложения. В листинге 13.36 также есть этот код, потому что этот рубин знает ссылку между current_user и micrrpost. я не имею представление о том, почему он не работает с моим кодом:
Модель
class ServiceProvider < ApplicationRecord
belongs_to :user
has_many :service
validates :name, presence: true
validates :street, presence: true
validates :plz, presence: true
validates :location, presence: true
validates :user_id, presence: true
end
контроллер
class ServiceProvidersController < ApplicationController
before_action :set_serviceprovider, only: [:show, :edit, :update]
before_action :authenticate_user!
def index
end
def show
end
def new
@service_provider = current_user.service_providers.build(serviceprovider_params)
end
def create
@service_provider = current_user.service_provider.build(serviceprovider_params)
if @service_provider.save
redirect_to @service_provider, notice: "Gespeichert"
else
render :new
end
end
def edit
end
def update
end
private
def set_serviceprovider
@service_provider = Service_Provider.find(params [:id])
end
def serviceprovider_params
params.require(:service_provider).permit(:name, :street, :plz, :location)
end
end
ServiceProvider-Помощником
module ServiceProvidersHelper
def current_service_provider
@current_service_provider = service_provider.user_id.find(current_user.id)
end
end
Если есть пожалуйста, спросите, какая кодировка отсутствует, что вам нужно для вашей помощи. Я новичок в кодировании с ruby, но я думаю, что taht должен быть соответствующими частями кода, который задействован. Спасибо за помощь.