2017-10-11 50 views
0

顯示名稱,而不是標識我有兩個表,accountsitems,我想從賬目表showbuisness_name代替idview/items/show.html.erb頁面上。的Rails:在節目頁

目前我沒有模型之間的關聯,但我有表中的account_id列。

create_table "accounts", force: :cascade do |t| 
    t.string "buisness_name" 
    t.string "web_site" 
    t.string "phone_number" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
end 

create_table "items", force: :cascade do |t| 
    t.string "title" 
    t.text "description" 
    t.string "image" 
    t.decimal "price" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.integer "category_id" 
    t.json "attachments" 
    t.integer "account_id" 
end 

我得到通過這個account_id<%= @item.account_id %>,但我想,以顯示buisness_name代替。

+0

JFYI,這是「業務」,而不是「 buisness「 –

+0

」目前我的模型之間沒有關聯「 - 這就是你需要解決的問題。 –

回答

2

嘗試這樣的事情

class Item < ActiveRecord::Base 
    belongs_to :account 
end 

到視圖

<% if @item.account %> 
    <%= @item.account.buisness_name %> 
<% end %> 

應該business_name,如@Sergio Tulentsev已經告訴你

我更新了我的答案,因爲我從表中注意到,即account_id沒有not null約束

2

如果你有

<%= @item.account_id %> 

可怕的方式來獲得該賬戶將是

<%= Account.find_by(id: @item.account_id).try(:buisness_name) %> 

聰明的多是

class Item 

    belongs_to :account 

    delegate :buisness_name, to: :account, prefix: true, allow_nil: true 

然後在視圖...

<%= @item.account_buisness_name %> 
+3

可能要在該委託上使用'prefix:true'。物品通常不會有商業名稱。 :) –

+0

@SergioTulentsev好點。 – SteveTurczyn