2006-04-17 [長年日記]

_ [ruby][rails] page.set_style

RJS で Element.setStyle するメソッドってないんすか?

module ActionView
  module Helpers
    module PrototypeHelper
      class JavaScriptGenerator
        module GeneratorMethods
          def set_style(id, style = {})
            record "Element.setStyle(#{id.to_json}, #{style.to_json})"
          end
        end
      end
    end
  end
end

深い。使いどころは、

app/controllers/users_controller.rb:
def create
  if @user.save
    render :update do |page|
      page.redirect_to :action => "list"
    end
  end
end

app/views/users/create.rjs:
page.replace_html :error_messages, error_messages_for("user")
@user.errors.each{}.each_key do |key| # ちょっと間違った使い方
  page.set_style "user_#{key}", :border => "2px red solid"
end

つか、これでは、正しい値を入れ直した後も赤い枠が取れないなー。 最初に page.select("input") でかき集めて、style を default に戻せばいいのかな。 どうやってー。

[]

«前の日記(2006-04-16) 最新 次の日記(2006-04-21)»