【问题标题】:Retrieving Order details using id使用 id 检索订单详细信息
【发布时间】:2014-08-18 16:49:41
【问题描述】:

我正在使用 Rails 4.1 构建的购物车应用程序有一个带有架构的 order_type 模型:

create_table "order_types", force: true do |t|
    t.string   "order_name"
    t.integer  "max_limit"

这属于订单模型。用户可以从新订单页面中选择订单类型,我使用集合选择来显示它。 order_type_id 保存到创建的每个订单中。命令controller.rb:

class OrdersController < ApplicationController
    def new
        @order = Order.new
        @item = @order.items.build
    end

    def index
        @orders = Order.all
    end

    def show
        @order = Order.find(params[:id])
            @items = Item.where(:order_id => @order.id)
    end

    def create
        @order = current_user.orders.new(order_params)
        respond_to do |format|
            if @order.save
                OrderMailer.order_submission(@order).deliver
                format.html { redirect_to @order, notice: 'Order Submitted.' }
                format.json { render :show, status: :created, location: @order }
            else
                format.html { render :new }
                format.json { render json: @order.errors, status: :unprocessable_entity }
            end
        end
    end

这是表单中使用的collecton select:

<div class="form-group">
                <%= f.label :order_type_id %><br>
                <%= f.collection_select(:order_type_id, OrderType.all, :id, :order_name, prompt: true, class: "form-control")  %>
            </div>

我想根据存储的 order_type_id 检索并显示订单类型详细信息。我该怎么做?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:
    <%= @order.order_type %> 
    

    将为您提供与该特定订单关联的 OrderType。然后就是:

    <%= @order.order_type.order_name %>
    

    检索 OrderType 的属性。

    【讨论】:

      【解决方案2】:

      您可以在ApplicationHelper 中编写一个函数,例如:get_order_type_details_by_id(order_type_id),然后简单地返回订单详细信息。您可以从任何视图模板直接调用该辅助函数。由于 ApplicationHelper 中定义的函数可以在所有视图中访问。

      或者您可以使用关联来获取订单详细信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-21
        • 2018-03-15
        • 2014-07-10
        相关资源
        最近更新 更多