代码之家  ›  专栏  ›  技术社区  ›  Notinlist

ror:activescaffold:如何使更新列fetaure成为条件?

  •  0
  • Notinlist  · 技术社区  · 14 年前

    Schema:

    action_types
    ------------
    id
    name
    description
    
    actions
    -------
    id
    action_type_id
    date
    description
    

    目标是只在用户界面上还没有被占用的情况下,将action\types.description复制到actions.description。.

    做了什么:

    class ActionsController < ApplicationController
        active_scaffold :action do |c|
            c.columns = [ \
                , :date \
                , :action_type \
                , :description \
            ]
            c.columns[:action_type].form_ui = :select
            c.columns[:action_type].options[:update_column] = :description
            c.columns[:description].form_ui = :textarea
            c.columns[:description].options = { :cols => 40, :rows => 5}
        end
    
    protected
    
        def after_render_field(record, column)
            # record: almost empty, only "action_type" is filled.
            # column: column.name == "action_type"
            # @params[]: id: id for the record
            # But no data on UI state. So if the user wrote some lines into the
            # description then it will be lost. No possibility
            # to express "do nothing!"
        end
    
        #...
    end
    

    另外,如果我们在“更新”期间仅在“创建”时没有此功能,我可以接受。这是一半,但现在就足够了。

    有什么想法吗?

    (Rails 2.3.4)

    1 回复  |  直到 14 年前
        1
  •  0
  •   Notinlist    14 年前

    向上投票并接受:

    http://markmail.org/message/cfbhmeyfjw3bjisp#query:+page:1+mid:vnnrbzdj7cywlvgm+state:results

    你可以复印 javascript_for_update_column 方法,并更改 :with "Form.serialize(this.form)" (从 "'value=' + this.value" )

    after_render_field 您可以使用的方法:

    update_record_from_params(record, active_scaffold_config.update.columns, params[:record])

    仅供参考:空字段将作为 nil S,不是空字符串。

    推荐文章