错误:
SyntaxError
/root/projeto/config/routes.rb:9: syntax error, unexpected tIDENTIFIER, expecting keyword_end get "/empresa/new" to: 'empresa#new'
^ /root/projeto/config/routes.rb:10: syntax error, unexpected tIDENTIFIER, expecting keyword_end post "/empresas" to: 'empresa#create' ^
代码:
<%= form_for Empresas.new do |f| %>
<div class = "form-group">
<%= f.label :nome %>
<%= f.text_field :nome , class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :endereco %>
<%= f.text_field :endereco, class: "form-control" %>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<%= f.submit "Criar", class: "btn btn-primary" %>
</div>
</div>
<% end %>
控制器:
class EmpresaController < ApplicationController
def index
@empresa = Empresa.order :nome
end
def new
@empresa = Empresa.new
end
def create
valores = params.require(:empresa).permit :nome, :endereco
@empresa= Empresa.create valores
if @empresa.save
redirect_to root_url
else
render :new
end
end
end
路线: 以下是用户和公司的路线。 您的公司代码不会随时调用用户路线。
Rails.application.routes.draw do
post "/usuarios" => "usuario#create"
get "/usuario/new" => "usuario#new"
delete "/usuario/:id" => "usuario#destroy", as: :usuario
get "/usuario/busca" => "usuario#busca", as: :busca_usuario
root to: "usuario#index"
get "/usuario/lista" => "usuario#lista"
get "/empresa/index" => "empresa#index"
get "/empresa/new" to: 'empresa#new'
post "/empresas" to: 'empresa#create'
end
答案 0 :(得分:0)
使用form_for
帮助程序时,请使用单数形式的模型:
<%= form_for Empresa.new do |f| %>
另外,为了维护MVC模式,您可以在控制器中创建一个等于Empresa.new
的实例变量,然后将其传递给表单。
您可以查看Rails helpers。
尝试编辑您的控制器,如:
# app/controllers/empresa_controller.rb
...
def new
@empresa = Empresa.new
end
def create
valores = params.require(:empresa).permit :nome, :endereco
@empresa= Empresa.create valores
if @empresa.save
redirect_to root_url
else
render :new
end
end
请确保您的路线中有两种方法:
# config/routes.rb
get '/empŕesa/new', to: 'empresa#new'
post '/empresas', to: 'empresa#create'
然后在new
视图中,您将@empresa
方法中定义变量new
,您可以在表单中使用它:
# app/views/empresa/new.html.erb
<%= form_for @empresa do |f| %>
更新:问题的最后一次更新显示您缺少路线定义中的逗号。