目前日期文章:201007 (2)

瀏覽方式: 標題列表 簡短摘要

參考文章:use rails helper methods in controller

有時候在 script/console 中,或是 controller 內會用到已經寫好的 helper method,像筆者最近遇到要使用 strip_tags,但是要怎麼叫出來用呢?

一、在 controller 中,有一個叫 @template 的 instance variable 可以用來呼叫 helper method,範例程式如下:

class BlahController < ApplicationController
  def process_text
    @html = "<p><strong>fgnfgbaf</strong>gafwadsfgewrgtdfgerge</p>"
    @ascii = @template.strip_tags(@html) #呼叫 strip_tags 這個 helper method 
    ..
  end
end

這樣可以就可以得到 @ascii = "fgnfgbafgafwadsfgewrgtdfgerge" 的結果。

 

二、這種方法非常簡單,就是直接呼叫完整的 method 路徑

ActionController::Base.helpers.some_helper_method

要在 console 中使用必須用這種方法。

笨笨小蟹 發表在 痞客邦 PIXNET 留言(0) 人氣()

因為我本身使用 mysql ,所以這篇的範例也是 mysql 。

有時候用 AR 處理比較花時間又沒效率,但實在是需要做某些資料庫的動作時,就會想要直接用 sql 的語法來下指令。

這裡參考一篇文章:Execute sql within rails environment without using your models

rails 本身在 ActiveRecord 中,可以使用 execute method 來下 sql 的指令。但如果想在 rake 檔案裡面寫 sql 語法要怎麼辦呢?

這裡提供了範例:

namespace :db do
  desc "Cleanup the database by setting rows to deleted when older than xxx. Defaults to development database.  Set RAILS_ENV=[production, test, etc.] to override."
  task :cleanup => :environment do
    sql = <<-SQL
      -- 在這裡寫 sql 語法
    SQL
    # used to connect active record to the database
    ActiveRecord::Base.establish_connection
    ActiveRecord::Base.connection.execute(sql)
  end
end

如果你使用的 sql 指令只有一行,也可以只寫最後兩行,然後把敘述的最後面改寫成execute("sql 語法")

笨笨小蟹 發表在 痞客邦 PIXNET 留言(0) 人氣()