0

ソース URL を含むモデル アイテムがあります。

class Item < ActiveRecord::Base
    attr_accessible :name, :price, :priority,:picture,:url
    belongs_to :user

    validates :url, format: /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/ix
    validates_attachment_content_type :picture, :content_type => ['image/jpeg', 'image/png']

    #default_scope {where "completed<>trued"}

    def source
            hostname=@url.split('/')[2]
            hostname["www."]=""
            hostname


    end

end

これをインデックスビューで使用します

    <a href="<%=item.url%>"><%=item.source %></a>

これで、item.url に問題なくアクセスできます。しかし item.source は例外をスローします:

nil:NilClass の未定義メソッド `split'

これは、ソース メソッドが url プロパティにアクセスしていないためだと思います。どうすればそれを行うことができますか?これがRubyでの動作方法であると想定しています。私は大失敗をしているかもしれません

4

2 に答える 2

2

どこ@urlから来たの?多分あなたは意味します:

self.url
于 2013-09-03T13:55:20.407 に答える
1

オブジェクト属性であるため、@urltryself.url.またはを削除します。url.

于 2013-09-03T13:55:29.793 に答える