【发布时间】:2016-10-30 21:20:31
【问题描述】:
我是 Ruby on Rails 的新手,目前正在尝试为我创建一个小型测试网站。我的代码中有一个问题,指出“# 的未定义方法 `service_providers'” 产生错误的代码行如下:
def new
@service_provider = current_user.service_providers.build(serviceprovider_params)
end
我的数据库模型是表 "User" has_one "ServiceProvider" has_many "Services"。 我将 rubygem “设计”用于用户模型。 我试图在我的示例应用程序中转移“Ruby on Rails 教程”(https://www.railstutorial.org/book/user_microposts) 的微博的想法。在代码清单 13.36 中也有这段代码,因为 ruby 知道 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-Helper
module ServiceProvidersHelper
def current_service_provider
@current_service_provider = service_provider.user_id.find(current_user.id)
end
end
如果缺少一些需要帮助的编码,请询问。我是使用 ruby 编码的新手,但我认为必须是所涉及代码的相关部分。 感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails devise