Rails active admin,如何将一个产品,加入到广告表里

xiaoyaozizai · 2014年04月05日 · 最后由 pynix 回复于 2014年04月10日 · 1984 次阅读

需求是每个“产品”有一个建立它的“广告”的按钮, 点按钮,进入的 form 页,已经填写了“产品”的一些信息,还需要再填写一些“广告”相关信息, 然后提交,将这些数据插入“广告”表。

你需要先熟悉一下 Rails 基础,然后再用 Active Admin,这样才能解决 CRUD 以外的问题。 这个功能不属于 active admin,而是 rails 的基本概念。

#1 楼 @kgen 感谢你的回复,不用 active admin 我知道怎么做,在 active admin 下能贴一两行 关键点 代码吗?

广告模型里面保存一个产品 ID,做成下拉选项不就 OK 了?

你可以建立一个 member_action


index do
  actions default: false do |order|
    raw %|
      #{if order.editable?
          link_to "改总价", change_price_admin_order_path(order)
        end}
    |
  end
end

member_action :change_price, method: :get do
  resource
end

# 改总价
member_action :change_total, method: :put do
  resource
  # do what you want to do
  flash[:notice] = "改总价成功"
  redirect_to admin_order_path(@order)
end

在 views/admin/orders 创建 change_price.html.erb 对应一个修改总价的操作模板,模板提交到 change_total_admin_order_path 即可。

#3 楼 @pynix 过万下拉就不方便了

#4 楼 @special 感谢回复,我已解决,稍后我会贴代码

1 产品列表添加链接 ActiveAdmin.register Product do index do ... actions do |p| link_to '加为广告', {controller: 'admin/ads', action: 'new', product_id: p.id} end end end

2 广告添加 controller.new ActiveAdmin.register Ad do controller do def new product_id = params[:product_id] @ad = Ad.new @ad.product_id = product_id end end end

#5 楼 @xiaoyaozizai 首字母模糊搜索了。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号