让活跃的脚手架无需工作:标记动作

时间:2012-06-30 15:16:35

标签: ruby-on-rails activescaffold

我目前正在使用Rails 3.2和Active Scaffold开展项目。我为我的一个模型创建了一个简单的控制器,这个控制器是这样编码的:

  class StudentsController < ApplicationController
  before_filter :authenticate_user!
  active_scaffold :student do |conf|
    conf.label = "Students"
    conf.columns = [:last_name, :first_name, :age, :gender, :grade_level, :current_grade]
    conf.create.columns = [:last_name, :first_name, :age, :gender, :grade_level]
    conf.update.columns = [:last_name, :first_name, :age, :gender, :grade_level]
    conf.columns[:current_grade].actions_for_association_links = [:show]
    conf.columns[:current_grade].sort_by :sql => "grade_level"
    conf.actions = [:list, :search, :create, :update, :show, :delete]
    list.columns.exclude :customer_id, :grade_level
    list.sorting = {:last_name => 'ASC'}
  end

  def conditions_for_collection
    ["customer_id = #{current_user.customer_id}"]
  end

  def before_create_save(record)
    record.customer_id = current_user.customer_id

  end
end 

我的问题是:当我删除记录时,我收到一条消息,指出'$ record_name无法删除'。然而,如果我刷新页面,我发现记录实际上已被删除。检查我的日志文件后,我看到一条错误消息:

undefined method `as_marked=' for #<Student:0x0000000554c1d0>

我尝试添加:标记到我的操作列表,这确实解决了问题。但是,我不希望标记/复选框列显示在我的列表中。

有什么想法吗?这是我第一次使用活动脚手架,我觉得这很烦人。

1 个答案:

答案 0 :(得分:1)

我发现如果我将它添加到我的模型中:

  def as_marked= (x)
  end

它可以工作,而不会在我的列表中显示标记/复选框列。

为了记录,我讨厌这个解决方案:)如果我想出更好的东西,我一定会回来更新这个答案。