当我试图在我的数据库(sqlite3)上执行表单写入数据时,我得到了以下错误
undefined method `referrals_path' for #<ActionView::Base:0x00000000008cc8>
我的routes.rb
Rails.application.routes.draw do
...
post "afiliados", to: "afiliados#create"
...
end我的afiliados_controller.rb
class AfiliadosController < ApplicationController
...
def create
cliente = params.require(:referral).permit(:nomeAfiliado, :nomeReferenciado, :comissao, :validadeComissao)
Referral.create cliente
end
end我的cadastroTeste.html.erb
<html>
<body>
<a href="/afiliados">Voltar</a>
<%= form_for Referral.new do |form| %>
Nome <input type="text" name="referral[nomeAfiliado]"><br/>
Nome Referenciado <input type="text" name="referral[nomeRef]"><br/>
Comissão <input type="number" name="referral[comissao]"><br/>
Válido até <input type="date" name="referral[validadeRef]"><br/>
<button type="submit">Criar</button>
<% end %>
</body>
</html>我正在学习Alura (在线编程学校)的教程,不知道该怎么做。我尝试将我的routes.rb更改为referral#create,但不起作用。
发布于 2021-07-15 21:05:38
我不确定教程中包含的内容,但您会收到此错误,原因如下:
<%= form_for Referral.new do |form| %>它期望定义到其create动作的ReferralController和路由。您试图让Rails使用其在表单上的约定自动检测控制器和操作,但您没有在控制器上使用约定。这句话的意思是,应该在ReferralController create操作上创建Referral对象,而不是在AfiliadosController上。
如果你仍然想做这件事,你可以这样做:
<%= form_for afiliados_path do |form| %>你可以在这里阅读更多关于这个的内容:https://guides.rubyonrails.org/form_helpers.html#dealing-with-model-objects
https://stackoverflow.com/questions/68394214
复制相似问题