Checks_controller
class Checkscontroller < ApplicationController
def show
@check= Tester.find(params[:id])
end
def new
end
def create
@check = Tester.new(check_params)
@check.save
redirect_to @check
end
def check_params
params.require(:check).permit(:title, :description)
end
end
我正在尝试将'checks'控制器中的数据保存到'Tester'模型中,在ChecksController #create中获取"NoMethodError
,在尝试将数据保存到my中时使用未定义方法tester_url' for
#` DB。这一行似乎存在一些问题:“redirect_to @check”。
的routes.rb
Rails.application.routes.draw do
get 'home/screen'
resources :checks
root 'home#screen'
end
答案 0 :(得分:2)
好的,因为你想为你的Tester模型使用ChecksController,你必须将它添加到你的路线:注意我假设你没有Check模型,因为我看不到它在哪里,你用Tester作为支票?
resources :testers, as: 'checks' controller: 'checks'
此行将使/checks/1
转到ID为1的Tester
对象,并使用ChecksController
show
方法显示
旧答案,后人
您收到此错误是因为您在routes.rb
文件中缺少Tester模型的路由。
您可以向其添加resources :testers
,它会起作用。当然,您还需要至少与您的TestersController存在show
动作
发生此错误是因为当您redirect_to @check
时,Rails知道它是Tester对象并且期望一个名为tester的路由路由到TestersController#show
。它试图使用rails为路由创建的辅助方法,称为tester_url