gpt4 book ai didi

mysql - Ruby on Rails 数据库接口(interface)

转载 作者:行者123 更新时间:2023-11-29 12:00:26 25 4
gpt4 key购买 nike

我已经习惯了 MySQL,但现在正在尝试使用 Ruby on Rails。在 MySQL 中,我有两个表,其中一个包含对另一个表的引用(“posts”引用“topic”)。执行我想要的操作的 MySQL 查询类似于“SELECT * FROM Posts WHERE posts.topic=”topic”(这里的“topic”是一个变量)。

但是,尝试使用 Ruby 模型让我感到困惑。在 Controller 和 View 之间传递的变量为空,因为它们是空表。

在我的 Controller 中:

def topic
@topic = Topic.where(params[:topic])
@posts = Post.where(topic: @topic.object_id)
end

我不知道如何选择具有由“topic”变量定义的主题的帖子。

在 View 中:

<% @posts.each do |post| %>
<p><%= post.title %></p>
<% end %>

迁移文件:

class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :title
t.string :text
t.references :topic
t.timestamps
end
end
end
class CreateTopics < ActiveRecord::Migration
def change
create_table :topics do |t|
t.string :topic
t.timestamps
end
end
end

最佳答案

鉴于帖子和主题是相关的,至少根据您的迁移,在您应该声明的模型中”

class Topic
has_many :posts

class Post
belongs_to :topic

假设您有一个 Topic 实例 @topic,您可以使用以下方法检索所有相关记录:

@posts = @topic.posts

关于mysql - Ruby on Rails 数据库接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467612/

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