Ruby on Rails中的脚手架和CSS

时间:2012-11-30 15:09:28

标签: ruby-on-rails ruby scaffolding

我制作了一个包含两个条目(titlecontent)的博客帖子

rails generate scaffold Post title:string content:text

这有效,但

  1. 如果我想稍后添加新的输入区怎么办?防爆。 author字段或其他内容。我在哪里向Post posts添加更多字段?

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

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

  4. 我正在使用Windows和rails 3.2.8。

3 个答案:

答案 0 :(得分:5)

三合一问题:)

第一个答案

正如其他人所说,你需要修改你的表以获得新的字段,这可以通过migration轻松完成:

rails generate migration AddAuthorToPost author:string

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

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

rake db:migrate

第二个回答

您可以在app/views/posts的视图中添加样式表,但我建议您使用layouts作为应用程序,布局位于app/views/layouts。您只需在layouts目录中创建一个application.html.erb,然后将CSS包含在那里。

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

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

第3个回答

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

validates :title,
  :format => { :with => /\A[a-zA-Z]+\z/, :message => "Only letters allowed" },
  :length => { :maximum => 20 }

答案 1 :(得分: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

答案 2 :(得分: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/

欢迎登机!