Я не знаю, правильно ли задан вопрос.Rails найти данные из ассоциации
У меня есть места, оборудование и таблицы hardware_type, но нет вложенных маршрутов. Я установил отношения так, чтобы местоположение has_many аппаратное обеспечение и аппаратное обеспечение принадлежало аппаратным_категориям вместе с взаимными отношениями.
в моем контроллере мест в шоу действий у меня есть
class LocationsController < ApplicationController
before_action :set_location, only: [:show, :edit, :update, :destroy]
# GET /locations
# GET /locations.json
def index
@locations = Location.all
end
# GET /locations/1
# GET /locations/1.json
def show
@hardwares = Hardware.where(:location_id => params[:id])
end
и в моем шоу-странице
<% @hardwares.each do |hardware| %>
<tr>
<td><%= hardware.name %></td>
<td><%= hardware.asset_tag %></td>
<td><%= hardware.serial_number %></td>
<td><%= hardware.note %></td>
<td><%= hardware.hardware_category_id %></td>
</tr>
<% end %>
Это работает и hardware.hardware_category_id возвращает правильное число.
Я хотел бы показать имя hardware_category вместо
Я думал, что-то вроде
<td><%= hardware.hardware_category_id.name %></td>
будет работать, но я получаю неопределенный метод `имя» для 1: Fixnum, как я мог бы получить доступ к эти данные
schema `create_table" hardware_categories ", force: true do | t | t.string "имя" t.datetime "created_at" t.datetime "updated_at" конец
create_table "" металлические изделия, сила: верно ли | т | t.string "имя" t.string "asset_tag" t.string "serial_number" t.text "Описание" t.text "примечание" t.string "стоимость" t.date "ПОКУПКА" t.date "warranty_end_date" t.date "EOL" t.datetime "created_at" t.datetime "updated_at" t.string "Mdl" t.integer "LOCATION_ID" t.integer "hardware_category_id" т .integer "manufacturer_id" t.integer "supplier_id" конец`
Кажется, что вы новичок в Rails.It очень простая вещь, которую вы должны сначала попробовать, прежде чем сразу положить в переполнение стека. – punitcse
@punitcse Я новичок в рельсах. Я думал, что это будет сложнее. Я пробовал большинство комбинаций .notation excepy того, который работал. Я думал, что нам нужно добраться до другого стола через id feild, а затем уже – Greyhounddad