Newbie Rails的問題...我知道有一個更好的方法來做到這一點。我需要幫助理解爲什麼這不像我認爲的那樣工作。 我正在做一個簡單的連接表與一個預先存在的數據庫使用「has_many」關係。我需要保持「非鐵軌」友好的頭銜。has_many加入顯示問題
下面是輸出<%= room.levels%>如出現在瀏覽器:[#<Level Name: "01 - FIRST FLOOR">]
我想只看到01 - 一樓,沒有所有的其他信息。
我有兩個表。 :辦公室:水平
這裏的架構的兩個表:
create_table "levels", :primary_key => "Id", :force => true do |t|
t.integer "TypeId"
t.integer "DesignOption"
t.string "Name"
t.float "Elevation"
create_table "rooms", :primary_key => "Id", :force => true do |t|
t.integer "DesignOption"
t.integer "PhaseId"
t.string "Comments"
t.float "Volume"
t.float "Perimeter"
t.integer "Level"
t.string "Occupancy"
t.float "Area"
t.string "Number"
t.string "Name"
end
add_index "rooms", ["Id"], :name => "Id", :unique => true
這裏的應用程序/模型/ room.rb:
class Room < ActiveRecord::Base
attr_accessible :Area, :Level, :Name, :Number, :Perimeter, :PhaseId, :Elevation
has_many :levels, :primary_key => 'Level', :foreign_key => 'Id', :select => 'Name' set_primary_key :Id
end
下面是來自應用程序/意見片斷/ rooms/index.html.erb:
<% @rooms.each do |room| %>
<tr>
<td><%= room.Name %></td>
<td><%= room.Number %></td>
<td><%= room.PhaseId %></td>
<td><%= room.levels %></td>
<td><%= link_to 'Show', room %></td>
<td><%= link_to 'Edit', edit_room_path(room) %></td>
<td><%= link_to 'Destroy', room, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
謝謝!
按照慣例(和導軌強調約定!)您的屬性/方法的名字(例如'Name','Number',...)應小寫 – mdemolin
這個問題的作者明確地說:「'我需要保持「非鐵軌」友好的頭銜。「 – MrYoshiji
使用從建築軟件存在的出口...寧願保持數據完好無損。 – dmet