4

我做了一篇博文,里面有两个条目(titlecontent),就像这样

rails generate scaffold Post title:string content:text

这有效,但是

  1. 如果我以后想添加一个新的输入区域怎么办?前任。author场什么的。我在哪里向我的 Post 脚手架添加更多字段?

  2. style.css我在我的公共目录中制作了一个样式表。它只是坐在那里。例如,如何将其链接到我的文件app/views/post/new.html.erb

  3. 我在哪里可以学习为特定领域搭建脚手架的所有调整?前任。我希望title输入字段不包含特殊字符(例如@#$%)或不超过一定长度。

我正在使用 windows 和 rails 3.2.8。

4

3 回答 3

5

三合一问题:)

第一个答案

正如其他人所说,您需要修改表以具有新字段,这可以通过迁移轻松完成:

rails generate migration AddAuthorToPost author:string

但是您还需要修改您的视图,因为它不会包含新字段。相应的视图在app/views/posts(查找edit.html.erbnew.html.erb)中。

当然,您需要在数据库上运行迁移:

rake db:migrate

第二个答案

您可以将样式表添加到您的视图中,app/views/posts但我建议您为您的应用程序使用布局,布局位于app/views/layouts. 您可以简单地在您的布局目录中创建一个application.html.erb并将您的 CSS 包含在其中。

<html>
  <head>
    <%= stylesheet_link_tag "custom" %>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

yield 块将包含视图的实际输出,因此您应该从现有视图中删除这些部分。

第三个答案

如果您想控制某个字段接受的字符,您可以在模型的验证中进行。

validates :title,
  :format => { :with => /\A[a-zA-Z]+\z/, :message => "Only letters allowed" },
  :length => { :maximum => 20 }
于 2012-11-30T15:27:55.540 回答
1

向现有表添加列的最安全方法是创建一个新迁移:

rails g migration add_public_and_private_to_document public:string private:string

如果您使用add_[column_names]_to_[model]命名约定,Rails 将计算出适当的表并创建您想要的迁移。

在这里阅读更多信息: http: //guides.rubyonrails.org/migrations.html

于 2012-11-30T15:15:15.293 回答
0

如果要添加新字段,则必须进行迁移,并将该字段添加到 _form.html.erb

rails generate migration add_author_to_posts author:string

您必须在 app/assets/stylesheets 中创建样式

阅读: http: //guides.rubyonrails.org/getting_started.html

对于迁移: http: //guides.rubyonrails.org/migrations.html

另外,我推荐你:http ://railscasts.com/

欢迎登机!

于 2012-11-30T15:15:00.020 回答