在我的Rails应用程序中,所有帖子都显示在索引页面上。只有帖子标题及其发布日期才会显示在索引页面上。例如,如果您点击某个帖子,系统会将您转到localhost:3000/posts/1
,您可以在其中查看该帖子的标题,日期,正文和评论。
我正在尝试做什么
我不想只在索引页面上显示每个帖子的标题和日期,而是要显示每个帖子的标题,日期和简短描述。
我做了什么
原始new.html.erb
是创建新帖子的页面,其中部分内容如下:
<%= form_for :post, url: posts_path do |f| %>
<%= f.text_field :title %>
<%= f.text_area :body %>
<% end %>
所以我补充道:
<%= f.text_field :description %>
我的帖子模型:
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :title
t.text :body
t.timestamps
end
end
end
所以,我补充道:
t.string :description
那不起作用。所以我试着在终端
中这样做$ rails g model Post title:string description:string body:text --force
情况更糟。总的来说,我刚刚重新启动教程时遇到了很多错误。
所以,我的问题是:“如何在帖子中添加说明?”
答案 0 :(得分:4)
您可以通过运行迁移来执行此操作。运行rails generate migration add_description_to_posts description:string
然后运行rake db:migrate
以运行迁移。然后,您的帖子表中会有一个描述列
要将说明添加到帖子中,您需要在帖子控制器的posts params中添加:description
,并在帖子表单中添加输入字段以供说明。
要显示说明,您需要添加标记<%= @post.description %>
答案 1 :(得分:3)
请按照以下步骤操作:
步骤1:迁移以使用rails生成器添加新字段。
rails g migration add_description_to_posts
步骤2:在生成的迁移文件中:
class AddDescriptionsToPosts < ActiveRecord::Migration
def change
add_column :posts, :description, :string
end
end
第3步:迁移数据库
rake db:migrate
第4步:改变观点。
<%= form_for :post, url: posts_path do |f| %>
<%= f.text_field :title %>
<%= f.text_area :body %>
<%= f.text_area :description %>
<% end %>
步骤5:在PostController.rb中,在白名单参数中添加描述:
def post_params
params.require(:post).permit(:title, :body, :description)
end
如果您遇到任何困难,请告诉我。
答案 2 :(得分:2)
您有两种选择:
选项1 :您不想创建new migration file
第1步:您运行rake db:rollback
第2步:在您的migration file
中添加t.string :description
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :title
t.string :description
t.text :body
t.timestamps
end
end
end
第3步:您运行rake db:migrate
第4步:在您的new.html.erb
中,您可以这样做:
<%= form_for :post, url: posts_path do |f| %>
<%= f.text_field :title %>
<%= f.text_area :description %>
<%= f.text_area :body %>
<% end %>
选项2 :您想要创建new migration file
第1步:您创建new migration file
以将new column
添加到your table
rails generate migration add_description_to_posts description:string
step2 :在您创建的迁移文件中,添加新列
add_column :posts, :description, :string
第3步:您运行rake db:migrate
第4步:在您的new.html.erb
中,您可以这样做:
<%= form_for :post, url: posts_path do |f| %>
<%= f.text_field :title %>
<%= f.text_area :description %>
<%= f.text_area :body %>
<% end %>