Rails Rails 数据库操作问题??

chrisyu · 2017年10月23日 · 最后由 chrisyu 回复于 2017年10月27日 · 729 次阅读

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

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

共收到 4 条回复

以前没有接触过 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 , 所以暂时忘掉你的数据库吧

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

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

谢谢 理解了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册