我是Rails的新手,我正在尝试学习这项技术,所以请原谅这个问题是否愚蠢。
我正在使用Rails 3。
请告诉我如何在数据库中插入记录。
我是ugng postgresql,下面是学生表的表结构。
SELECT column_name FROM information_schema.columns WHERE table_name ='Students';
column_name
-------------
id
name
age
description
(4 rows)
这是我的控制器文件student_controller.rb
class StudentController < ApplicationController
def new
end
end
这是我的模型文件student.rb
class Student < ActiveRecord::Base
end
这是我的视图文件\ app \ views \ student \ new.html.erb
<h1>BookController#new</h1>
<form>
Id: <input type="text" name="id" /><br />
Last Name: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
Desciption: <input type="text" name="description" />
</form>
当我访问http://localhost:3000/student/new
请让我知道如何在数据库中插入记录?
答案 0 :(得分:12)
你了解RESTful吗?我假设您知道它,除非您可以在rails指南中找到它(在表单标记中,您必须添加@student,:action => :new, :method => :post
)
要添加新记录,只需输入Student.create(:name=> "a", :age => 2)
该陈述由2个句子组成
object = Student.new(:name => "a", :age => 2)
object.save
我建议您使用rails generate scaffold Student
代替这样创建所有内容。然后,在控制器,视图中读取这些生成代码,你会非常深入地理解!:)
P / s:我也是业余爱好者:D
答案 1 :(得分:7)
首先,您应该使用rails helper方法form_for
来生成构建表单。关注this link。在您的模型中,您应该将您的学生数据作为名为student
的密钥中的哈希值接收。所以在你的控制器中它就像
def create
@student = Student.new(params[:student])
respond_to do |format|
.. ... ...
#handle the response
end
end
这是一个示例comments_controller.rb
文件,可以快速查看。 https://gist.github.com/3748175
但最重要的是!!
由于您对此技术完全陌生,我建议制作示例rails应用程序的脚手架并完成自动生成的代码。
# run this command in your command line to generate the codes
rails generate scaffold Student name:string age:integer description:text
获取更多见解here。
一些最有用的链接:
答案 2 :(得分:2)
Rails是一个复杂的框架。这并不意味着它很难(即使有时候),但是有很多主题可以让你掌握。你一定要阅读一本教程来帮助你入门:officiel rails guide "Getting Started"是一种非常体面的方式让你自己陷入困境。
在那之后,你可以得到你的问题的答案,但也有更多的答案......还有更多的问题。