2012-09-19 53 views
6

我是新来的Rails中插入数据库记录,我想学习这种技术,所以请原谅如果问题是愚蠢的。的Rails 3:如何使用Rails

我使用Rails 3。

请让我知道我可以在数据库中插入一条记录。

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

这是在我的视图文件\应用\ 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

作为答案将是非常大的显示完整的程序,请按照Rails入门。它将帮助您了解Rails如何工作。 http://guides.rubyonrails.org/getting_started.html – HungryCoder

+0

@Preethi Jain:有什么帮助你吗? – Samiron

回答

12

你了解RESTful吗?我假设你知道它,除非你能在导轨导向找到它(在表单标签,你必须添加@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

+0

非常感谢。 – Pawan

+0

关于这个创建的唯一的事情是它不会自动生成服务器ID,并会抱怨ID为零。 –

7

第一轨道的辅助方法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

Rails是一个复杂的框架。这并不意味着它很难(即使有时),但是有很多话题需要掌握。你一定要阅读一个教程,以帮助你开始:金条轨道指南"Getting Started"是一个非常体面的方式让自己沉浸在轨道。

之后,你会有你的问题的答案,但也有更多的答案......也许更多的问题。