如何在rails中保存没有表格的数据?
How to save data in rails with no form?
我是 rails 的新手,我只是在学习基础知识。
这是我保存数据的代码:
app/controllers/employee_controller.rb
class EmployeesController < ApplicationController
def index
render json: @employees = Employee.all
end
def show
render json: @employee = Employee.find(params[:id])
end
def new
@employee = Employee.new
end
def create
@employee = Employee.new(employee_params)
@employee.save
redirect_to @employee
end
private
def employee_params
params.require(:employee).permit(:fname, :mname, :lname, :contactno, :address, :username, :password)
end
end
app/views/employees/new.html.erb
<%= form_for @employee do |f| %>
<p>
<label>First Name</label><br>
<%= f.text_field :fname %>
</p>
<p>
<label>Middle Name</label><br>
<%= f.text_field :mname %>
</p>
<p>
<label>Last Name</label><br>
<%= f.text_field :lname %>
</p>
<p>
<label>Contact No.</label><br>
<%= f.text_field :contactno %>
</p>
<p>
<label>Address</label><br>
<%= f.text_area :address %>
</p>
<br>
<p>
<label>Username</label><br>
<%= f.text_field :username %>
</p>
<p>
<label>Password</label><br>
<%= f.text_field :password %>
</p>
<br>
<p>
<%= f.submit %>
</p>
但是,我的目标是在没有 html 表格的情况下立即保存。 (无输入)就像我访问某个 URL 并且值自动保存在数据库中一样。
首先,我想在每个字段中分配一个常量值,看看它是如何工作的。
示例,
- fname='sample name'
- mname='sampleMidName'
- lname='sampleLastName'
和 等...
如何在访问某个 URL/site 后立即分配这些值。
在您的控制器中尝试类似的操作:
class EmployeesController < ApplicationController
def custom
@employee = Employee.create(fname: "sample name")
end
end
并在config/routes.rb:
中定义正确的路线
get "/custom" => "employees#custom"
当您在浏览器中输入正确的 url 时,例如:
localhost:3000/custom
应该保存 Employee
。
祝你好运!
首先向控制器添加一个方法
def update_fname
# get the parameters
fname = params[:fname]
# get the employee ID
id = params[:id]
# find the employee
@employee = Employee.find(id)
# update the employee
employee.update_attributes(fname: fname)
redirect_to @employee
end
然后,在您的路线中,您添加:
resources :employees do
get 'update_fname'
end
而你调用路由,应该是谁http://localhost:3000/employees/{:id}/update_fname?fname={your_fname}
我是 rails 的新手,我只是在学习基础知识。 这是我保存数据的代码:
app/controllers/employee_controller.rb
class EmployeesController < ApplicationController
def index
render json: @employees = Employee.all
end
def show
render json: @employee = Employee.find(params[:id])
end
def new
@employee = Employee.new
end
def create
@employee = Employee.new(employee_params)
@employee.save
redirect_to @employee
end
private
def employee_params
params.require(:employee).permit(:fname, :mname, :lname, :contactno, :address, :username, :password)
end
end
app/views/employees/new.html.erb
<%= form_for @employee do |f| %>
<p>
<label>First Name</label><br>
<%= f.text_field :fname %>
</p>
<p>
<label>Middle Name</label><br>
<%= f.text_field :mname %>
</p>
<p>
<label>Last Name</label><br>
<%= f.text_field :lname %>
</p>
<p>
<label>Contact No.</label><br>
<%= f.text_field :contactno %>
</p>
<p>
<label>Address</label><br>
<%= f.text_area :address %>
</p>
<br>
<p>
<label>Username</label><br>
<%= f.text_field :username %>
</p>
<p>
<label>Password</label><br>
<%= f.text_field :password %>
</p>
<br>
<p>
<%= f.submit %>
</p>
但是,我的目标是在没有 html 表格的情况下立即保存。 (无输入)就像我访问某个 URL 并且值自动保存在数据库中一样。
首先,我想在每个字段中分配一个常量值,看看它是如何工作的。
示例,
- fname='sample name'
- mname='sampleMidName'
- lname='sampleLastName' 和 等...
如何在访问某个 URL/site 后立即分配这些值。
在您的控制器中尝试类似的操作:
class EmployeesController < ApplicationController
def custom
@employee = Employee.create(fname: "sample name")
end
end
并在config/routes.rb:
中定义正确的路线get "/custom" => "employees#custom"
当您在浏览器中输入正确的 url 时,例如:
localhost:3000/custom
应该保存 Employee
。
祝你好运!
首先向控制器添加一个方法
def update_fname
# get the parameters
fname = params[:fname]
# get the employee ID
id = params[:id]
# find the employee
@employee = Employee.find(id)
# update the employee
employee.update_attributes(fname: fname)
redirect_to @employee
end
然后,在您的路线中,您添加:
resources :employees do
get 'update_fname'
end
而你调用路由,应该是谁http://localhost:3000/employees/{:id}/update_fname?fname={your_fname}