2016-11-17 6 views
0

私は、宝石の応答からレーキを使って作成したテーブルを作成しています。しかし、image_urlのないレコードは 'nil'を返します。レーキは自動的に 'nil'を固定値に置き換えるように設定できますか?Railsのcreate_tableのデフォルト値

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 

私が使用してみました:デフォルト=> "MyValue" しかし、それは動作しませんでした - 私は仮定ヌル/ = NIL

は、任意の入力を歓迎するので。

答えて

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 
+0

ああ、私はそれについても考えませんでした。私はそれをカードに入れるべきではない。 Card.createの直前ですか? – DNorthrup

+1

ええ - そのロジックを.eachに置くことは完全に機能しました。ありがとう! – DNorthrup

関連する問題