Rails Rails 数据库操作问题??

chrisyu · October 23, 2017 · Last by chrisyu replied at October 27, 2017 · 1288 hits

如何在 rails 模型对应的 a_controller 里面写一个函数,针对模型里面的对应数据库字段进行操作?? 例如,里面有 name,age 字段,如何对该字段进行赋值一个数组

在模型 model 文件夹 a 中如何调用这个函数,对赋值后的表段进行保存 希望大神能简单写个示例 谢谢!

以前没有接触过 MVC 么?

命令行中

$ rails g scaffold User name:string age:integer
$ rails db:migrate

然后你在生成的 users_controller 中

chrisyu = User.new
chrisyu.name = 'chrisyu'
chrisyu.age = 3
chrisyu.save

# 或者写简单点
User.create name: 'chrisyu', age: 3

在学习 Rails 的早期阶段,数据库管理 = migration,数据库操作 = ActiveModel , 所以暂时忘掉你的数据库吧

Reply to IChou

你好 很感谢回答我的问题,有些地方我没说清楚

我只是疑惑在 user_controller 中是否在插入数据时首先还需要 new 一个新的对像?

他里面的字段属性是否可以直接调用?比如我看有些地方直接通过(:name)就在调用,我不知道哪种写法正常?

我其实想在 user_controller 中写一个插入数据的接口,遍历里面的 name,age 字段进行赋值,在 model 文件夹 user 中就 new 一个新的对象,然后调用刚才在 user_controller 写的那个接口插入数据?

controller 本身和数据可以看做是没有关系的,它的职能可以描述为:当一个请求到来时,需要做什么

数据的读删查写都是通过操作 model 来实现的,它的职能是:当决定做什么了之后,要怎么做(基础的操作已经在 Rails 内核里面实现了,你的 Model 看上去可能会是空的)

所以 users_controller 里想操作 user 对象肯定是需要 User 的实例的

# users_controller.rb

def update
  user = User.find_by(id: params[:id])
  user.update name: params[:name], age: param[:age]
end

举个栗子,真实环境下,还是不要这么写

谢谢 理解了

You need to Sign in before reply, if you don't have an account, please Sign up first.