addPerson.html.erb 文件,用户可以在其中填写表单并提交。
<%= form_for @person do |form| %>
<%= form.label :first_name %><%= form.text_field :fName %>
<%= form.label :middle_name %><%= form.text_field :mName %>
<%= form.label :last_name %><%= form.text_field :lName %>
<%= form.submit "Add New Person" %>
people.rb控制器文件名
def addPerson
//code to push form data into database
end
我有一个用户可以填写并提交的表单。一旦用户点击提交按钮,我想在数据库中推送填充的数据。如何使用java脚本事件和控制器的操作在数据库中添加数据?
答案 0 :(得分:0)
结帐Michael Hartles免费获取Ruby on Rails的书籍https://www.railstutorial.org/book它拥有在Rails中构建您的第一个Web应用程序所需的一切。
至于您的帖子,你需要一些东西,例如new.html.erb模板和_form.html.erb模板,然后在你的控制器中你需要一个新的创建动作来保存表格。
你应该考虑使用person
之外的其他内容,因为当rails将其复数为persons
时,它听起来很奇怪。应该使用user
和users
等内容。
你也可能只想运行这个脚手架命令,它会为你自动生成所有文件,如控制器,模型,视图等......这样你就可以看到一切都是如何连接的。
尝试运行rails g scaffold user first_name:string last_name:string middle_name:string
然后运行rails db:migrate
请注意,如果您正在使用rails 4,请改用rake
命令。所以rake g scaffold blah blah...
和rake db:migrate
在这里看看你的班级应该如何看待。这只是其中的一部分,您需要设置正确的路径,并在数据库中创建列。最好运行一个脚手架命令,它会为你设置一切,然后查看Hartles的书,看看它是如何工作的。
class PersonsController < ApplicationController
before_action :set_person, only: [:show, :edit, :update, :destroy]
def index
@persons = person.all
end
def show
end
def new
@person = @person.new
end
def edit
end
def create
@person = @person.new(person_params)
respond_to do |format|
if @person.save
format.html { redirect_to persons_path(@person), notice: 'Person was successfully created.' }
format.json { render :show, status: :created, location: @person }
else
format.html { render :new }
format.json { render json: @person.errors, status: :unprocessable_entity }
end
end
end
def update
respond_to do |format|
if @person.update(person_params)
format.html { redirect_to persons_path(@person), notice: 'Person was successfully updated.' }
format.json { render :show, status: :ok, location: @person }
else
format.html { render :edit }
format.json { render json: @person.errors, status: :unprocessable_entity }
end
end
end
def destroy
@person.destroy
respond_to do |format|
format.html { redirect_to person_url(@person), notice: 'Person was successfully destroyed.' }
format.json { head :no_content }
end
end
#######################
# private methods
#######################
private
def set_person
@person = Person.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def patent_params
params.require(:person).permit(:first_name, :middle_name, :last_name)
end
end