1

現在、Rails 3.2 と Active Scaffold を使用するプロジェクトに取り組んでいます。次のようにコード化されたモデルの 1 つの単純なコントローラーを作成しました。

  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>

アクションのリストに :mark を追加してみましたが、問題は解決しました。ただし、リストにマーク/チェックボックス列を表示したくありません。

何か案は?アクティブな足場を使用するのはこれが初めてで、これは... 面倒です。

4

1 に答える 1

1

これをモデルに追加すると、次のことがわかりました。

  def as_marked= (x)
  end

リストにマーク/チェックボックス列を表示せずに機能します。

記録のために、私はこの解決策が嫌いです:)もっと良いものを思いついたら、必ず戻ってきてこの回答を更新します。

于 2012-10-20T01:12:31.583 に答える