私はRuby on Railsの新機能で、現在私のために少しテスト用のウェブサイトを作ろうとしています。私のコードでは、 "定義されていないメソッド` service_providers ' 『ユーザー『にhas_one 『のServiceProvider』にhas_many』サービス:"未定義のメソッド.build new Object
def new
@service_provider = current_user.service_providers.build(serviceprovider_params)
end
私のデータベースモデルは、表でエラーが発生したコードの 行は次のようです』。 私はユーザーモデルに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は関係するコードの関連部分でなければならないと思います。 ありがとうございます。