如何使用scaffold或columns创建注册表和用户配置文件页面

时间:2013-02-11 14:28:25

标签: ruby-on-rails scaffolding

我是Rails的新手,我想确保我从右脚开始。所以我需要澄清一下。

我需要的注册字段是用户名,电子邮件,密码,生日,邮政编码。

所以我将运行" rails生成脚手架用户名:string email:string,birthday:string zip code:string"。然后,我将在user_spec文件中添加一个password_digest列。

我将允许用户在从用户CP注册后输入的个人资料字段是:姓名,性别,种族(选择多个选项),电子邮件,密码,生日,邮政编码(不在美国,然后列出城市) ,国家),教育,宗教,政治,儿童,身高,用户吸烟,用户饮酒,事业和用户关于我的部分。

我需要确认的是我应该为所有这些信息生成脚手架(用户获取所需信息,然后为其他配置文件信息创建另一个名为UserProfile的脚手架)或者我应该只使用user_spec.rb中的列来实现所有这些信息?

3 个答案:

答案 0 :(得分:1)

我们的想法是将所有字段保存在一个表中。这可以使用迁移轻松完成。

添加所有字段后,包括用户名,电子邮件,密码,生日,ZipCode,姓名,性别,种族(选择多个选项),教育,宗教,政治,儿童,身高,用户吸烟,用户饮酒,事业和用户关于我的部分。

然后你可以在登录后和登录显示/隐藏根据你想要的字段之前暗示条件。

这样做的一般方法是:

if current_user

//show the fields after login
else
//show the fields before login
end

请注意,您可以大致了解如何做到这一点。但是,您可以在任何视图中的代码中的任何位置使用它。

答案 1 :(得分:0)

实际的数据库列将在数据库迁移文件中定义。您无需在模型定义中全部定义它们。如果您按照描述使用生成器为模型构建脚手架,您将在db/migrations中找到一个迁移文件,用于创建您描述的列。

听起来你正在考虑将“脚手架”作为实际代码,这令人困惑。相反,可以将支架视为定义模型代码,控制器代码和视图代码创建的蓝图。你不生成脚手架;你使用脚手架生成模型,视图和控制器。

答案 2 :(得分:0)

我对rails很新,但我不推荐使用Scaffold选项。您最好从命令行生成具有所需字段的用户模型和用户控制器,然后根据需要创建视图。

脚手架可能会给你提供超出你需要的东西,并导致混乱/问题。

你应该查看Michael Hartl的“通过示例学习Rails”(免费电子书!)。即使你不想通过它,他也会引导读者建立一个Twitter应用程序,我认为阅读一些章节会对你有所帮助。祝你好运!