Я бы попробовал решить задачу, используя helper. Регуляркой найти помеченное слово (например, @username) и подставить route_path(resource)
helper:
module PostsHelper
def in_text_tag(s)
...тут действия над s...
end
end
view:
<%= in_text_tag(@post.content) %>
Работающий пример:
application_helper.rb:
module ApplicationHelper
def in_text_tag(s)
s.sub(/(@\d*)/) {
|i| User.where(phonenumber: i.gsub(/@/, '')).first.name
}
end
end
index.html.erb:
<%= in_text_tag(@message) %>
@message = "Здравствуй, @4000!"
На страничке сгенерится:
Здравствуй, Алексеев Алексей!