ruby-on-rails - 如何从 Ruby on Rails 活动管理数据库表中直接调用支持数据
问题描述
我在理解和访问数据库中的支持数据时遇到问题。从活动管理员创建的对象之一是称为“兴趣”的模型。兴趣是我可以在应用程序(例如控制器)中直接调用的对象。但是,我需要访问我猜测的基本上是支持数据,我相信 Active Admin 也创建了名为“interests_users”的数据。原因是因为它将用户链接到非常有用的兴趣数据。请参见下面的 schema.rb
create_table "interests", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
create_table "interests_users", id: false, force: :cascade do |t|
t.integer "interest_id", null: false
t.integer "user_id", null: false
t.index ["interest_id"], name: "index_interests_users_on_interest_id"
t.index ["user_id"], name: "index_interests_users_on_user_id"
例如,我可以通过这样做来访问我的应用程序代码中的兴趣表
@interest = Interest.all
然后我可以在我的视图中访问该数据,因此我可以实际使用该数据,但无论我尝试什么,我都无法访问interests_users 数据。如果我尝试像
@interest_users = InterestsUsers.All
我收到诸如“未初始化的常量 PagesController”之类的错误。无论如何,我是 Rails 的新手,我相信在理解将数据从数据库获取到 HTML 的适当技术时,我缺乏很多基础知识。对这个问题的任何直接帮助都会很棒,因为我现在很困惑。
class StaticPagesController < ApplicationController
def discovery
@aoks = Micropost.paginate(page: params[:page], per_page: 12)
end
def home
if user_signed_in?
@post = current_user.posts.build
@feed_items = current_user.feed.paginate(page: params[:page], per_page: 10)
else
@******
@user_count = User.count
@user_all = User.all
@interest = Interest.all
@interest2 = Interest.first; @interest.users. ——problem!
#@interest_table = Interest
#@interest_users = InterestsUsers.All
#interests_users.find_each do |user|. ——problem!
# @interest_user = user
#end
end
class Interest < ApplicationRecord. ##models/interest.rb
has_and_belongs_to_many :user
end
谢谢,乔
解决方案
推荐阅读
- javascript - 我应该使用 JQuery 对话框来显示/提交表单元素吗?
- android - Dokka 失败:com.intellij.psi.impl.source.PsiClassImpl 无法转换为 com.intellij.psi.PsiJavaFile
- java - 为什么 Java8 Stream.min() 和 max() 将比较器作为输入?
- android - 方向按钮在“负”方向上不起作用
- android - 将布局动态添加到具有一些 ID 问题的 Linearlayout
- php - 替换数组 PHP 中的一个单词
- java - 为什么我的 Android Studio 应用无法在 Android 设备上运行?
- selenium-webdriver - 如何解决此问题,即尝试单击单击时展开的按钮时出现“无法定位元素”错误
- sql - 在 SQL Server 2014 中比较表列并显示错误消息中的差异
- java - 对等方的证书具有无效签名。错误代码:Selenium GeckoDriver 和 Firefox 通过 Java 出现 SEC_ERROR_BAD_SIGNATURE 错误