铁路的simple_form宝石:
如果我有,= f.input :password, :required => true那么无论何时我提交表单并且它包含错误,我输入的密码都会在页面重新加载时消失.如果我使用= f.input :password, :required => true, :as => :text它所有工作都像预期的那样,所以显然对密码字段有不同的处理方式.
如何记住密码字段的值?
编辑:有些人似乎不明白我在谈论用之前输入的值重新显示相同的表格.这个问题与数据库无关,事实上在这种情况下甚至没有任何东西保存在数据库中.对于PHP人来说,这相当于<input name="pass" type="password" value="<?= $_POST['pass']; ?>">
您如何决定何时以及如何违反单一责任原则?
例如,假设我有一个具有以下接口的网络摄像机(为了简单起见,接口保持愚蠢和“错误”):
class Camera
{
string user();
void set_user(string user);
string password();
void set_password(string password);
string url();
void set_url(string url);
image take_snapshot();
bool reboot();
}
Run Code Online (Sandbox Code Playgroud)
这看起来很自然,但看起来 Camera 类有 3 个职责:存储元数据、拍摄快照、重新启动。按照SRP,你可以这样写:
class Camera
{
string user();
void set_user(string user);
string password();
void set_password(string password);
string url();
void set_url(string url);
}
image take_snapshot(camera c);
bool reboot_camera(camera c);
Run Code Online (Sandbox Code Playgroud)
这里的东西在职责方面被整齐地分开,但现在它看起来非常像具有愚蠢结构和函数的 C...这引出了一个问题:为什么我们首先需要 OOP。
您如何在便利性和建议零售价之间取得平衡?
[编辑]
@stjin 的想法被@John Zwinck 显示为答案
c++ coding-style single-responsibility-principle design-principles