ruby-on-rails - Rails 显示来自belongs_to 的类别名称

标签 ruby-on-rails ruby-on-rails-3

我想显示属于关系的类别名称而不是数字(cat_id),我有汽车和制造商,基本上这里是代码 -

显示.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>

所以基本上我想在这里取名:-
<p>
  <b>Make:</b>
  <%= @car.make_id %> 
</p>

汽车 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 相关

谢谢

罗比

最佳答案

当然 - 属于关系给你一个对象(在你的例子中是 Make),你可以调用它的方法 - 包括获取字段名称!

因此,如果您像这样设置模型:

class Car < ActiveRecord::Base
  belongs_to :make
end


class Make < ActiveRecord::Base

end

Make有一个名为 name 的字段,你可以在你看来:
<p>
  <b>Make:</b>
  <%= @car.make.name %> 
</p>

关于ruby-on-rails - Rails 显示来自belongs_to 的类别名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318304/

相关文章:

ruby-on-rails - 将通知存储给用户的数据库设计

ruby - 如何在 Rails 中使用 Disqus gem?

ruby-on-rails - 第一个 Ruby on Rails 应用程序 : use v3 (Beta) or 2. 3?

css - Twitter Bootstrap - 如何让模态窗口在移动设备上负责?

javascript - Paypal Embedded Flow 不使用 returnUrl 或 cancelUrl

ruby - Rails 3 模型记录器

ruby-on-rails - 在产品中生成 .zip 文件的问题 (Rails 3)

ruby-on-rails - 无法在关联模型的 Active Admin 索引属性中显示(belongs_to/has_many) - Rails 3.2

ruby-on-rails - 在私有(private)/安全的 Rails 应用程序中使用 Google Analytics 是否安全?

ruby-on-rails - FactoryGirl after_create 方法不保存