私はモデルを持っUser
ていItem
ます。ユーザーはlike
、want
またはown
アイテムを使用できます。この関係をレールで作成するにはどうすればよいですか? この3つのアクションは今後増えるかもしれないので柔軟にしたいです。
私の英語でごめんなさい
アップデート
UserAction
とという名前のモデルを作成しましたUserActionType
user.rbに追加しました
has_many :user_actions
has_many :actions, :through => :user_actions, :source => :user_action
def method_missing(method_id, *arguments)
if match = /([_a-zA-Z]\w*)_it/.match(method_id.to_s)
action_name = match[1]
action_type = UserActionType.find_by_name(action_name)
action = action_type.user_actions.new
action.user = self
action.item = arguments[0]
action_type.save
action.save
elsif match = /find_my_([_a-zA-Z]\w*)s/.match(method_id.to_s)
action_name = match[1]
user_actions.joins('LEFT JOIN user_action_types ON user_action_types.id = user_actions.user_action_type_id').where('user_action_types.name = "'+ action_name +'"')
else
super
end
end
このように、、、、などown_it
のwant_it
メソッドlike_it
がfind_my_likes
ありますfind_my_*
。
私の解決策についてどう思いますか?