我想从属于关系中显示一个类别名称而不是一个数字(cat_id),我有汽车和制作,基本上这里是代码 -
show.html.erb
<p id="notice"><%= notice %></p>
<p>
<b>Make:</b>
<%= @car.make_id %>
</p>
<h2>
<em><%= @car.model %> <%= @car.body_typw %> <%= @car.engine_size %> <%= @car.trim %></em>
</h2>
<p>
<%= image_tag @car.image(:large) %>
</p>
<% @carimages.each do |carimage| %>
<%= image_tag carimage.image(:thumb), :class => "imgsmall" %>
<% end %>
<p>
<b>Transmission:</b>
<%= @car.transmission %>
</p>
<p>
<b>Fuel type:</b>
<%= @car.fuel_type %>
</p>
<p>
<b>Millage:</b>
<%= @car.millage %>
</p>
<p>
<b>Price:</b>
<%= number_to_currency(@car.price) %>
</p>
<p>
<%= raw @car.content %>
</p>
所以基本上我想要Make name: -
<p>
<b>Make:</b>
<%= @car.make_id %>
</p>
cars_controller.rb
class CarsController < ApplicationController
# GET /cars
# GET /cars.json
def index
@cars = Car.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @cars }
end
end
# GET /cars/1
# GET /cars/1.json
def show
@car = Car.find(params[:id])
@pages = Page.all
@carimages = Carimage.all
@carimages = Carimage.find(:all, :limit => 10, :order => "id DESC")
respond_to do |format|
format.html # show.html.erb
format.json { render json: @car }
end
end
# GET /cars/new
# GET /cars/new.json
def new
@car = Car.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @car }
end
end
# GET /cars/1/edit
def edit
@car = Car.find(params[:id])
end
# POST /cars
# POST /cars.json
def create
@car = Car.new(params[:car])
respond_to do |format|
if @car.save
format.html { redirect_to @car, notice: 'Car was successfully created.' }
format.json { render json: @car, status: :created, location: @car }
else
format.html { render action: "new" }
format.json { render json: @car.errors, status: :unprocessable_entity }
end
end
end
# PUT /cars/1
# PUT /cars/1.json
def update
@car = Car.find(params[:id])
respond_to do |format|
if @car.update_attributes(params[:car])
format.html { redirect_to @car, notice: 'Car was successfully updated.' }
format.json { head :ok }
else
format.html { render action: "edit" }
format.json { render json: @car.errors, status: :unprocessable_entity }
end
end
end
# DELETE /cars/1
# DELETE /cars/1.json
def destroy
@car = Car.find(params[:id])
@car.destroy
respond_to do |format|
format.html { redirect_to cars_url }
format.json { head :ok }
end
end
end
它通过make table-id和car table - make_id
相关联由于
罗比
答案 0 :(得分:4)
当然 - 属于关系会为您提供一个对象(在您的情况下为Make
),您可以调用方法 - 包括获取字段名称!
所以,如果你设置你的模型:
class Car < ActiveRecord::Base
belongs_to :make
end
class Make < ActiveRecord::Base
end
Make
有一个名为name
的字段,您可以在视图中显示:
<p>
<b>Make:</b>
<%= @car.make.name %>
</p>