レッスンテーブルとタグテーブルがあります。has_many:through関係を使用して両方を関連付け、中央のテーブルはtags_relationship.rbです。
class Lesson < ActiveRecord::Base
attr_accessible :title, :desc, :content, :tag_name
belongs_to :user
has_many :tag_relationships
has_many :tags, :through => :tag_relationships
end
class Tag < ActiveRecord::Base
attr_accessible :name
has_many :tag_relationships
has_many :lessons, :through => :tag_relationships
end
私の見解の1つでは、仮想属性を作成しようとしています。私は持っています...
<div class="tags">
<%= f.label :tag_name, "Tags" %>
<%= f.text_field :tag_name, data: { autocomplete_source: tags_path} %>
</div>
しかし、私のレッスンテーブルにはその属性tag_nameがないため、代わりに私のメソッドを呼び出します
def tag_name
????????
end
def tag_name=(name)
self.tag = Tag.find_or_initialize_by_name(name) if name.present?
end
しかし、????????の中に何を入れるべきかわからない。タグテーブル内の:name属性を参照しようとしています。
当時、私はhas_manyとbelongs_toの関係を使用していました。私のレッスンはタグに属していました(これは間違っていました)が、私は書くことができました...
tag.name
そしてそれはうまくいった。しかし、そのhas_many:through nowなので、よくわかりません。tags.name、Lessons.tags.nameなどを使用してみましたが、機能しないようです。タグテーブル名属性を参照するにはどうすればよいですか?ありがとうございました