2013-02-11 44 views
0

我是Rails的新手,我想确保从右脚开始。所以我需要一些澄清。如何使用脚手架或列创建注册表和用户配置文件页面

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

因此,我将运行“rails generate scaffold用户名:字符串电子邮件:字符串,生日:字符串邮政编码:字符串”。然后我会在user_spec文件中添加一个password_digest列。

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

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

+0

我期望'spec/models/user_spec。rb'是'app/models/user.rb'中的'User'模型的Rspec测试。如果你开始使用Rspec来测试你的代码(并且你不需要使用Rspec,但你应该测试),并且你在其他地方使用'* _spec.rb'这样的名字,你可能会发现这些名字混淆了。 – pjmorse 2013-02-11 14:32:22

回答

0

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

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

+0

好的。我只是不太清楚,如果有必要从生成的脚手架上完成所有的工作,或者我应该随后编辑文件来添加这些信息。我基本上想确保我以最有效的方式做事。试着在学习代码的同时学习最好的方法。 – 2013-02-11 14:40:59

+1

是的 - 当您生成脚手架时,您不需要添加所有字段,可以生成迁移以稍后添加它们。随着项目的发展,大多数Rails项目都会进行相当多的迁移来调整数据表。 – pjmorse 2013-02-11 15:13:07

+0

谢谢。出于好奇心。当我在命令中输入邮政编码时,因为那是我在脚手架中包含的邮​​政编码。我应该输入一个下划线还是封闭空间(zip_code或zipcode)? – 2013-02-11 15:17:51

0

我相当新的轨道,但我不会推荐脚手架选项。您最好从命令行生成具有所需字段的用户模型和用户控制器,然后根据需要创建视图。

脚手架可能会给你比你需要的更多,并导致混乱/问题的道路。

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

+0

是的,我听说有人说要跳过脚手架,只是手工完成。其他人说他们使用它,但最终删除了一些不需要的文件。 – 2013-02-11 14:37:38

1

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

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

然后你可以暗示登录后的状态和登录前显示/隐藏根据你想要的字段。

一般的方式做到这一点是:

if current_user 

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

请注意,这是你如何能做到这一点的一般概念。但是,您可以在任何视图中的代码中的任何位置使用它。

+0

所以用这种方法我会生成脚手架用户所有的个人资料信息,然后使用显示/隐藏作为回报以显示我想要显示在注册页面上并编辑个人资料页面是否正确? – 2013-02-11 14:48:35

+0

是的,这是我写的,因为当你展示什么时它并不重要。事情是根据你想要什么,什么时候想要使用条件。 – 2013-02-11 14:50:27

+0

好吧,这将完美的工作,所以我不必创建另一个名为UserProfile脚手架。我可以改为使用用户一个与您的显示/隐藏提示。 另一方面,对于脚手架输入邮政编码的邮政编码。它应该是zip_code,邮政编码还是邮政编码? – 2013-02-11 14:52:20

相关问题