gpt4 book ai didi

ruby-on-rails - 什么时候代码属于 ruby​​ on rails 的模型?

转载 作者:行者123 更新时间:2023-12-04 06:13:13 25 4
gpt4 key购买 nike

目前进行了大量的 rails 3 练习,我正在研究一个身份验证系统,并且正在学习关于 railscasts 的教程。来自 railscasts 的 Ryan 对该教程进行了某种更新,并进行了一些小改动以利用 rails 3.1

例如has_secure_password

所以我的 Sessions_controller 中的一些代码改为:

class SessionsController < ApplicationController
def new
end

def create
user = User.find_by_username(params[:username])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_path, :notice => "Logged In"
else
flash.now.alert = "Invalid Credentials"
render "new"
end
end

def destroy
session[:user_id] = nil
redirect_to root_path, :notice =>"Logged Out"
end

end

我想知道的是,创建方法/操作中的某些代码是否应该在模型中?将这段代码放在那里是好的还是坏的做法?

我应该遵循什么规则,因为我想学习正确的方法而不是养成坏习惯,因为我已经超越了学习框架的那部分,在那里事情开始变得更有意义,而不是没有意义。

建议很感激..

我特别想知道的是..
1. 程序员什么时候知道代码属于模型?他/她如何做出这个决定?

最佳答案

这是面向对象编程中最重要的问题之一。

这都是关于责任的。如果您认为该模型负责该功能,则将代码放入您的模型中。

在您的示例中,您会看到:

  • SessionController只负责创建和销毁用户的 session 。
  • User负责认证。

  • 所有业务逻辑都进入您的模型。您的 Controller 负责填充您的 View 、处理用户的输入并按他们的方式发送用户。 View 只是显示信息,几乎不包含任何逻辑(如果有)。

    另外:查看现有项目以获得灵感(例如, Shopify )。

    关于ruby-on-rails - 什么时候代码属于 ruby​​ on rails 的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7546857/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com