私はレール4を使用しており、answer
,、benefits
の属性を持つArticle
モデルを持っています。保存前に属性のキーを補間する
私はbefore_save
メソッドを作成しようとしています。これは自動的に副作用と利点を調べ、サイト上の別の記事に対応するリンクを作成します。
2つの実質的に同一のメソッドを作成する代わりに、副作用と利点の2つを作成する代わりに、同じメソッドを使用して、属性がanswer
と等しくないことを確認したいと思います。
は、これまでのところ、私はこのようなものを持っている:
before_save :link_to_article
private
def link_to_article
self.attributes.each do |key, value|
unless key == "answer"
linked_attrs = []
self.key.split(';').each do |i|
a = Article.where('lower(specific) = ?', i.downcase.strip).first
if a && a.approved?
linked_attrs.push("<a href='/questions/#{a.slug}' target=_blank>#{i.strip}</a>")
else
linked_attrs.push(i.strip)
end
end
self.key = linked_attrs.join('; ')
end
end
end
が、そのようなキーに連鎖することは私にundefined method 'key'
与えます。
属性で補間するにはどうすればよいですか?
。そして私は答え以外のすべての属性についてこのメソッドを実行したいと思います。それが私がループしている理由です。再びThx! @タリー – Kathan
ああクール右 - それは与えられたコードから明らかではなかった。喜んでそれを助けた:) –
私は答えを受け入れる前にあなたのためのもう1つの質問...私はどのように属性に新しい値を割り当てることができますか? 'self.send(key)=" new value "'は動作しません。 – Kathan