我制作了一个包含两个条目(title
,content
)的博客帖子
rails generate scaffold Post title:string content:text
这有效,但
如果我想稍后添加新的输入区怎么办?防爆。 author
字段或其他内容。我在哪里向Post posts添加更多字段?
我在公共目录中创建了样式表style.css
。它只是坐在那里。例如,如何将其链接到app/views/post/new.html.erb
中的文件?
我在哪里可以学习脚手架特定领域的所有调整?防爆。我希望title
输入字段不包含特殊字符(例如@#$%
)或不超过一定长度。
我正在使用Windows和rails 3.2.8。
答案 0 :(得分:5)
三合一问题:)
正如其他人所说,你需要修改你的表以获得新的字段,这可以通过migration轻松完成:
rails generate migration AddAuthorToPost author:string
但您还需要修改视图,因为它不包含新字段。相应的观点位于app/views/posts
(查找edit.html.erb
和new.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块将包含视图的实际输出,因此您应该从现有视图中删除这些部分。
如果您想控制某个字段的已接受字符,可以在模型的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/
欢迎登机!