Ruby on rails 代码何时属于RubyonRails中的模型?
目前正在进行大量Rails3实践,我正在开发一个身份验证系统,并且正在学习railscasts教程。railscasts的Ryan对该教程进行了某种更新,并对rails 3.1进行了一些小改动 e、 g.有安全的密码吗 因此,我的会话控制器中的一些代码更改为:Ruby on rails 代码何时属于RubyonRails中的模型?,ruby-on-rails,ruby-on-rails-3,rubygems,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Rubygems,Ruby On Rails 3.1,目前正在进行大量Rails3实践,我正在开发一个身份验证系统,并且正在学习railscasts教程。railscasts的Ryan对该教程进行了某种更新,并对rails 3.1进行了一些小改动 e、 g.有安全的密码吗 因此,我的会话控制器中的一些代码更改为: class SessionsController < ApplicationController def new end def create user = User.find_by_username(para
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
class sessioncontroller“已登录”
其他的
flash.now.alert=“无效凭据”
呈现“新”
结束
结束
def销毁
会话[:用户\u id]=无
重定向到根路径:注意=>“注销”
结束
结束
我想知道的是,create方法/操作中的一些代码是否应该在模型中?有这个代码是好的还是坏的做法
我应该遵循什么规则,因为我想学习正确的方法,而不是养成坏习惯,因为我已经通过了学习框架的这一部分,在这一部分中,事情开始变得更有意义,而不是没有意义
忠告不胜感激
我特别想知道的是..1.程序员何时知道代码何时属于模型?他/她是如何做出决定的?我的建议: 在用户模型中(伪代码): 我认为你应该始终保持控制器尽可能小。
OOP中最重要的思想是封装,因此您应该在用户类中编写用户的所有操作,只返回客户机代码(在本例中为控制器)控制器需要完成的工作-将用户id添加到会话中。这是OO编程中最重要的问题之一 这都是关于责任的。如果您认为模型负责该部分功能,请在模型中放置代码 在您的示例中,您可以看到:
只负责创建和销毁用户的会话SessionController
用户负责身份验证
function authenticate(username, pass) {
/*get user by name
return user_id (or user object if you need some user data in view) if auth ok, otherwise false
*/
}