OSDN Git Service

fix:element remove func failed
[pettanr/pettanr.git] / lib / peta / item.rb
index 1f2c8f8..e33702a 100644 (file)
@@ -37,7 +37,6 @@ module Peta
     
     # ClassMethods
     # class_name
-    # table_name
     
     before_validation :valid_encode
     
@@ -61,13 +60,20 @@ module Peta
     end
     
     def self.plural
-      self.singular.pluralize
+      table_name = Manifest.manifest.pluralize self.item_name
+      table_name.camelize
     end
     
     def self.item_name
       self.singular.underscore
     end
     
+    # self.model_name
+    # => "PanelPicture"
+    
+    # self.table_name
+    # => "panel_picture"
+    
     def self.item?
       true
     end
@@ -89,7 +95,7 @@ module Peta
     end
     
     def self.path_name with_engine = false
-      self.plural.underscore
+      self.table_name
     end
     
     def self.pickup_item_name
@@ -108,12 +114,8 @@ module Peta
       self.my_peta.extend_column? column_name
     end
     
-    def self.list_where
-      ''
-    end
-    
-    def self.list_order
-      self.table_name + '.updated_at desc'
+    def self.index_list_where list
+      nil
     end
     
     def self.list_opt
@@ -127,7 +129,7 @@ module Peta
     def self.show item_id, operators = nil
       opt = {}
       opt.merge!(self.show_opt)
-      item = self.find(item_id, opt)
+      item = self.find(item_id)
       item.boosts 'read'
       raise ActiveRecord::Forbidden if operators and item.visible?(operators) == false
       item
@@ -152,6 +154,18 @@ module Peta
     
     #InstanceMethods
     
+    def my_manifest
+      self.class.my_manifest
+    end
+    
+    def singular
+      self.class.singular
+    end
+    
+    def plural
+      self.class.plural
+    end
+    
     def item_name
       self.class.item_name
     end
@@ -241,6 +255,17 @@ module Peta
       true
     end
     
+    def permit_params params, default_permit_attributes = []
+      attrs = self.class.permit_attributes(default_permit_attributes)
+      params.require(self.item_name.to_sym).permit(attrs)
+    end
+    
+    def self.permit_attributes default_permit_attributes = []
+      attrs = self.my_manifest.attributes.keys
+      attrs.concat(default_permit_attributes)
+      attrs
+    end
+    
     def editize?
       self.respond_to? :editor
     end
@@ -271,6 +296,10 @@ module Peta
       r
     end
     
+    def tag_attr column = nil, opt = {}
+      self.tag_attributes(column, opt).to_attr
+    end
+    
     def field_tag_attributes column_name, opt = {}
       self.tag_attributes(column_name, opt).merge(
         {'data-column_name' => column_name}