2015-04-02 60 views
0

我想插入使用public_activity寶石值活動表,但我不能夠存儲在正確的格式記錄的參數列SQL。如何實現這一點??Public_activity寶石鑲參數中的Rails 3

ActiveRecord::Base.connection.execute("INSERT INTO `activities`(`trackable_id`, `trackable_type`, 
     `owner_id`, `owner_type`, `key`, `parameters`, `created_at`, `updated_at`) 
     VALUES ('#{event_resource.resource_id}', '#{event_resource.resource_type}', '#{event.user.id}', 
     'User', '#{event.action_type}', ':description: '#{event.description}', '#{event.created_at}', '#{event.updated_at}')") 

回答

0

你真的需要閱讀how ActiveRecord works,這可能不是完全正確的,但它應該給你一個想法,查詢如何在軌完成

Activity.create(
    trackable: event_resource, 
    owner: event.user, 
    key: event.action_type, 
    parameters: { description: event.description } 
    created_at: event.created_at, 
    updated_at: event.updated_at 
) 

你可能需要到哈希轉換爲字符串格式,JSON也許

{ description: event.description }.to_json 
+0

感謝您的建議,但我導入event_resource表記錄到活動表,對於我不能能夠設置可追蹤:event_resour ce.resource,其未來的零,所以我想它作爲SQL INSERT在這種情況下傾斜設置參數哈希 – 2015-04-02 08:55:13

+0

仍實現,你不需要去儘可能將整個事情字符串,你失去了所有驗證,回調,以及數據的敏感,你可以用'trackable_type'並在回答'trackable_id'取代'trackable'我提供,各自有各自相應的數據。 – 2015-04-02 08:57:52

+0

試圖像這樣** PublicActivity :: Activity.create(trackable_id:event_resource.resource_id,trackable_type:event_resource.resource_type,鍵:event.action_type,參數:{描述:event.description},所有者:event.user,created_at: event.created_at)**但結果**#「海灘灣L」},created_at:「2015年4月2日9時04分28秒」> **,可追蹤的ID,類型來作爲零也它不是設置created_at領域 – 2015-04-02 09:09:39