Ruby on rails 如何在不使用Rails中的资源(action:new,:create)的情况下创建表单?
这是我的控制器Ruby on rails 如何在不使用Rails中的资源(action:new,:create)的情况下创建表单?,ruby-on-rails,ruby,Ruby On Rails,Ruby,这是我的控制器 class SchoolsController < ApplicationController def teacher @teacher = Teacher.new end def form_create @teacher = Teacher.new(teacher_params) if teacher.save redirect_to schools_teacher_path else flash[:n
class SchoolsController < ApplicationController
def teacher
@teacher = Teacher.new
end
def form_create
@teacher = Teacher.new(teacher_params)
if teacher.save
redirect_to schools_teacher_path
else
flash[:notice] = "error"
end
end
private
def teacher_params
params.require(:teacher).permit(:name)
end
end
class-SchoolsController
这是我的观点/schools/teacher.html.erb
<%= form_for :teacher do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
我是Ruby on Rails新手,不知道如何继续。您应该将此移到
教师控制器上。让我演示如何:
首先,您需要创建控制器,您可以通过在项目根目录的终端上键入以下命令来完成:
$rails g控制器新增
然后进入路由文件(config/routes.rb
):
然后转到teachers\u controller.rb
文件并添加以下内容:
class TeachersController < ApplicationController
def new
@teacher = Teacher.new
end
def reate
@teacher = Teacher.new(teacher_params)
if @teacher.save
redirect_to schools_teacher_path
else
redirect_to schools_teacher_path, notice: "error"
end
end
private
def teacher_params
params.require(:teacher).permit(:name)
end
end
请告诉我进展如何 如果您使用的是Rails 5.1,我建议您阅读本文,将此逻辑放入TeachersController,并创建操作new
和create
。没有必要违背公约,这篇文章非常有用,感谢通过链接获得更多的理解,特别是非资源性的路线。为什么每个人都向他展示如何废除公约,而不是教他如何正确地执行公约?
class TeachersController < ApplicationController
def new
@teacher = Teacher.new
end
def reate
@teacher = Teacher.new(teacher_params)
if @teacher.save
redirect_to schools_teacher_path
else
redirect_to schools_teacher_path, notice: "error"
end
end
private
def teacher_params
params.require(:teacher).permit(:name)
end
end
<%= form_for :teacher do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>