再会。我是 ruby 新手,我尝试构建一个带有嵌套“链接”字段的简单帖子表单。
例如:
*****
TITLE
*****
POST
****
LINK - 1
LINK - 2
.
.
LINK - N
****
使用 3 个迁移文件,我得到了以下架构文件
ActiveRecord::Schema.define(version: 20130827060014) do
create_table "links", force: true do |t|
t.text "link"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "posts", force: true do |t|
t.string "title"
t.text "body"
t.datetime "created_at"
t.datetime "updated_at"
end
end
前 2 个迁移文件是创建表,当我为链接创建表时,我还添加了 post_id 列。现在我决定使用以下命令删除此列:
$->rails g migration remove_field_name_from_links post_id:links
$->rake db:migrant
post 的“新”控制器如下所示
def new
@new_post = Post.new
3.times {@new_post.links.build}
end
问题是,即使该列不再存在,系统似乎仍在寻找它,因为我收到以下错误消息:
SQLite3::SQLException: no such column: links.post_id: SELECT "links".* FROM "links" WHERE "links"."post_id" = ?
这是视图文件:
<h1> <%= @post.title %></h1>
<p> <%= @post.body %></P>
<ul>
<%= for links in @post.links do %>
<li>
<%= links.link %>
</li>
<% end %>
</ul>
有任何想法吗?