私はここで何を間違っているのですか?
私が書いているアプリのモデルはpageと呼ばれています。これらの属性は次のとおりです。titlepagetypepage_url
タイトルとページタイプは通常どおりに設定できますが、page_urlにはカスタムのゲッター/セッターを使用しました。ロジック/モデルは次のとおりです。
class Page < ActiveRecord::Base
def page_url=()
temp = self[:title]
pageUrl = temp.gsub(" ", "_").downcase
if self[:pagetype] == "home"
pageUrl = "/"
end
self[:page_url] = pageUrl
end
def page_url
self[:page_url]
end
end
かなり簡単です->page_urlは、page_type == "home"でない限り、すべてのスペースが置き換えられたタイトルに基づいています。これは、"/"に設定されます。記録のために、page_urlを仮想化したくないのは、検索可能にしてデータベースに保存する必要があるためです。
残念ながら、Railsコンソールでも私のアプリでもこれは失敗しています。これが、コンソールでsetterメソッドを呼び出す方法です。
page1 = Page.new
page1.pagetype = "home"
page1.title = "this is a test"
page2 = Page.new
pager2.pagetype = "content"
page2.title = "this is another test"
#expected results should be
page1.page_url()
=> "/"
page2.page_url()
しかし、私はこれを取得し続けます:
page1.page_url()
=> nil
私はここで何を間違っているのですか?