私はレールが初めてですので、このことについて私にご負担ください。私は、アジャイルWeb開発の本を使ってレールを習うように努力しています。もちろん、自分のものを試して、チュートリアルに従わなくてはなりませんでした。レーキテストを実行すると、私は奇妙な振る舞いで立ち往生しています。ビューのnil属性をto_sに変換する必要がありますか
は私が取得:
test_should_show_experiment(ExperimentsControllerTest):
ActionView::Template::Error: can't convert nil into String
と
test_should_get_index(ExperimentsControllerTest):
ActionView::Template::Error: undefined method `name' for nil:NilClass
すくいテストを実行しています。私の意見(インデックスおよびshow)で
私は
<%= image_tag experiment.image_url.to_s, :height => 32, :class => 'list_image' %>
は、すべての機能テストを(画像タグに.to_sを追加すること)に成功したことを変更したときに、私は
<%= image_tag experiment.image_url, :height => 32, :class => 'list_image' %>
を使用しています。
私の質問には:レールは私のケースではすべての可能なゼロ値を文字列にキャストする必要がありますか?
この質問を解決するために役に立つかもしれないいくつかの情報: 私のモデルは次のようになります。足場コマンドを生成した後
class Experiment < ActiveRecord::Base
validates :name, :description, :image_url, :presence => true
validates :name, :uniqueness => true
validates :image_url, :format => {
#:with => %r{\.(gif|jpg|png)$}i,
:with => /\.(gif|jpg|png)$/i,
:message => 'must be a URL for GIF, JPG or PNG image.'
}
end
私はコントローラに触れませんでした。
class CreateExperiments < ActiveRecord::Migration
def self.up
create_table :experiments do |t|
t.string :name
t.text :description
t.timestamps
end
end
def self.down
drop_table :experiments
end
end
## another migration file because I wanted to add a column
class AddImageToExperiments < ActiveRecord::Migration
def self.up
add_column :experiments, :image_url, :string
end
def self.down
remove_column :experiments, :image_url
end
end
私のテストのセットアップは次のようになります。
setup do
@experiment = experiments(:one)
@update = {
:name => "JUST SOME UNIT TEST NAME",
:description => "JUST SOME UNIT TEST DESCRIPTION",
:image_url => "http://www.just-some-unit-test-url.example.com/image.jpg"
}
end
私は@Updateを使用「テスト 『の実験を作成する必要がありますが、』 ...」と「テストは 『実験を更新する必要があり、』」 - これがありますエラーが表示されているようです。