Рельсы 2: совместный мульти стол - PullRequest
0 голосов
/ 14 февраля 2012

Извините, я новичок

У меня есть база данных:

Migrate

-Mst_group tble

class CreateMstGroups < ActiveRecord::Migration
  def self.up
    create_table :mst_groups do |t|
      t.string :group_name
    end
  end
end

-Mst_japan

class CreateMstJapans < ActiveRecord::Migration
  def self.up
    create_table :mst_japans do |t|
      t.string :name_level
    end
  end
end

-Tbl_user

class CreateTblUsers < ActiveRecord::Migration
  def self.up
    create_table :tbl_users do |t|
      t.string :login_name, :null =>false,:limit =>15
      t.string :password,:null =>false,:limit =>50
      t.string :full_name,:null =>false
      t.string :full_name_kana
      t.string :email,:null =>false
      t.string :tel,:null =>false,:limit =>15
      t.date :birthday,:null =>false  

      t.references :mst_groups
    end
  end
end

-Tbl_detail_user_japan

class CreateTblDetailUserJapans < ActiveRecord::Migration
  def self.up
    create_table :tbl_detail_user_japans do |t|
      t.date :start_date
      t.date :end_date
      t.integer :total

      t.references :tbl_users
      t.references :mst_japans
    end
  end
end

Модель

class MstGroup < ActiveRecord::Base
  has_many :tbl_users
end

class MstJapan < ActiveRecord::Base
  has_many :tbl_detail_user_japans
end

class TblUser < ActiveRecord::Base
  belongs_to :mst_group
  has_one :tbl_detail_user_japan
end

class TblDetailUserJapan < ActiveRecord::Base
  belongs_to :tbl_user
  belongs_to :mst_japan
end

Контроллер

def index
  @user= ???????
end

Как написать команду выберите: имя_ логина, полное_имя, полное_имя_кана, электронная почта, тел

1 Ответ

0 голосов
/ 14 февраля 2012

Это зависит от того, как вы хотите получить объект User. Вы должны указать Rails, как найти объект TblUser. Если, например, идентификатор пользователя известен, скажем, в переменной с именем 'id', вы должны сделать:

def index
  @user=TblUser.find(id)
end

От логики вашего приложения зависит, как Rails узнает, какой пользователь вам нужен. Вам может потребоваться ввод от пользователя в случае входа в систему и т. Д. (Обычно в Rails вы называете таблицу «Пользователи», по соглашению таблицы и классы имеют одно и то же имя, и тогда вам не нужно будет вызывать класс TblUser)

Это все, что вам нужно в контроллере, вам не нужно указывать, какие поля вам нужны. Затем в представлении вы можете получить доступ ко всем полям: Поля в TblUser, пример:

<%= @user.email %>

Вы можете получить доступ к полям из связанных объектов через отношения, например:

<%= @user.mst_group.group_name %>

Надеюсь, это поможет вам начать.

...