Rails 3:如何使用Rails在数据库中插入记录

时间:2012-09-19 07:14:54

标签: ruby-on-rails-3

我是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

请让我知道如何在数据库中插入记录?

3 个答案:

答案 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"是一种非常体面的方式让你自己陷入困境。

在那之后,你可以得到你的问题的答案,但也有更多的答案......还有更多的问题。