gpt4 book ai didi

ruby-on-rails - SQLite3::SQLException:没有这样的列:关联和显示 View 有问题

转载 作者:行者123 更新时间:2023-12-03 17:45:53 25 4
gpt4 key购买 nike

我在 View 中收到以下错误消息:http://localhost:3000/microposts/2
SQLite3::SQLException:没有这样的列:answers.micropost_id: SELECT "answers".* FROM "answers"WHERE ("answers".micropost_id = 2)

这是我的迁移:

| db > 迁移 > 创建微博 |

class CreateMicroposts < ActiveRecord::Migration
def self.up
create_table :microposts do |t|
t.string :content

t.timestamps
end
end

def self.down
drop_table :microposts
end
end

|数据库 > 迁移 > 创建答案 |
class CreateAnswers < ActiveRecord::Migration
def self.up
create_table :answers do |t|
t.string :location
t.text :body
t.references :micropost
t.integer :micropost_id

t.timestamps
end

end

def self.down
drop_table :answers
end
end

答案 Controller :
def create

@answer = Answer.new(params[:answer])
@answer.micropost = @micropost; @answer.save && @micropost.save


redirect_to micropost_path(@micropost)




respond_to do |format|
if @answer.save
format.html { redirect_to(@answer, :notice => 'Answer was successfully created.') }
format.xml { render :xml => @answer, :status => :created, :location => @answer }
else
format.html { render :action => "new" }
format.xml { render :xml => @answer.errors, :status => :unprocessable_entity }
end
end
end

和 View :
<p id="notice"><%= notice %></p>

<p>
<b>Content:</b>
<%= @micropost.content %>
<h2>Location Answers:</h2>
<% @micropost.answers.each do |answer| %>

<p>
<b>Answer:</b>
<%= answer.body%>
</p>
<%end %>

<h2> Answer a location:</h2>
<%= form_for ([@micropost, @micropost.answers.build]) do |f| %>
<div class="field">
<%= f.label :location %><br />
<%= f.text_field :location %>
</div>
<div class="field">
<%= f.label :body %><br/>
<%= f.text_area :body %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>

</p>

<%= link_to 'Edit', edit_micropost_path(@micropost) %> |
<%= link_to 'Back', microposts_path %>

我找不到这个应用程序有什么问题。
- 我试图回滚并再次迁移它没有工作。
- 我试图在迁移中手动添加“t.integer:micropost_id”,但它不起作用
我的模型有关联“belongs_to”和“has_many”,我添加了“
资源:微博做
资源:答案
结尾
到我的 config.rb 文件。

最佳答案

我相信 has_many 关联需要一个关系表来加入。如果您有 has_one 和 belongs_to(一对一关联),则可以使用简单的 _id 列方法,但 has_many 不会。所以如果你把这个连接表放进去,并通过它来描述has_many,你应该得到你想要的。

这是 rails associations 的非常棒的指南当我不清楚这些东西时,我会使用它。

关于ruby-on-rails - SQLite3::SQLException:没有这样的列:关联和显示 View 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6746318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com