【问题标题】:Default value for create_table in RailsRails 中 create_table 的默认值
【发布时间】:2016-11-17 01:36:11
【问题描述】:

我正在填充我使用来自 gem 响应的 rake 创建的表。但是,没有 image_url 的记录返回“nil”。如何设置它以便 rake 自动将“nil”替换为固定值?

namespace :cards do 
    desc "Create cards"
    task :create_cards => :environment do
        cards = MTG::Card.where(page: 50).where(pageSize: 50).all
        cards.each do |card|
            Card.create(name: card.name,multiverse_id: card.multiverse_id, manaCost: card.mana_cost, cmc: card.cmc, cardtype: card.type, rarity: card.rarity, set: card.set, setName: card.set_name, text: card.text, flavor: card.flavor, artist: card.artist, number: card.number, power: card.power, toughness: card.toughness, layout: card.layout, image_url: card.image_url, watermark: card.watermark, original_text: card.original_text, original_type: card.original_type)
        end
    end
end

我想知道这是否是我需要在控制器中做的事情?控制器只是:

class Card < ApplicationRecord
end

我尝试使用 :default => "MyValue" 但它不起作用 - 我假设因为 null /= NIL

欢迎任何意见。

【问题讨论】:

    标签: ruby-on-rails ruby rake


    【解决方案1】:

    为什么不在循环期间添加检查值是否存在?例如:

    namespace :cards do 
        desc "Create cards"
        task :create_cards => :environment do
            cards = MTG::Card.where(page: 50).where(pageSize: 50).all
            card.image_url.blank? ? image_url = 'fixed_val' : image_url = card.image_url
            cards.each do |card|
                Card.create(name: card.name,multiverse_id: card.multiverse_id, manaCost: card.mana_cost, cmc: card.cmc, cardtype: card.type, rarity: card.rarity, set: card.set, setName: card.set_name, text: card.text, flavor: card.flavor, artist: card.artist, number: card.number, power: card.power, toughness: card.toughness, layout: card.layout, image_url: image_url, watermark: card.watermark, original_text: card.original_text, original_type: card.original_type)
            end
        end
    end
    

    【讨论】:

    • 哦,我什至没有想到这一点。我不应该把它放在cards.each中吗?就在 Card.create 之前?
    • 是的 - 将该逻辑放在 .each 中效果很好。谢谢!
    猜你喜欢
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多