kev*_*pah 4 ruby ruby-on-rails scaffolding
我做了一个博客帖子有两个条目(title,content)这样
rails generate scaffold Post title:string content:text
Run Code Online (Sandbox Code Playgroud)
这可行,但是
如果以后要添加新的输入区域怎么办?例如 author字段或其他内容。我在哪里向我的Post支架添加更多字段?
我style.css在公共目录中制作了一个样式表。它只是坐在那里。例如,如何将其链接到我的文件app/views/post/new.html.erb?
在哪里可以了解对特定领域脚手架的所有调整?例如 我希望title输入字段不包含特殊字符(例如@#$%)或不超过特定长度。
我正在使用Windows和Rails 3.2.8。
3合1问题:)
正如其他人所说,您需要修改表以具有新字段,并且可以通过迁移轻松完成:
rails generate migration AddAuthorToPost author:string
Run Code Online (Sandbox Code Playgroud)
但是您还需要修改视图,因为它不包含新字段。相应的视图位于app/views/posts(查找edit.html.erb和new.html.erb)。
当然,您需要在数据库上运行迁移:
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
您可以在中添加样式表到视图中,app/views/posts但是我建议您为应用程序使用布局,这些布局位于中app/views/layouts。您可以application.html.erb在您的布局目录中简单地创建一个,然后将其中包含的CSS放在其中。
<html>
<head>
<%= stylesheet_link_tag "custom" %>
</head>
<body>
<%= yield %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
yield块将包含视图的实际输出,因此您应该从现有视图中删除这些部分。
如果要控制某个字段的可接受字符,则可以在模型中进行验证。
validates :title,
:format => { :with => /\A[a-zA-Z]+\z/, :message => "Only letters allowed" },
:length => { :maximum => 20 }
Run Code Online (Sandbox Code Playgroud)