首页 > 解决方案 > 如何从 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

谢谢,乔

标签: ruby-on-railsrubyruby-on-rails-5crud

解决方案


推荐阅读