Исходя из присутствия user_id
в вашей Post
модели, вы, вероятно, уже настроили ассоциацию, которая может получить имя пользователя.Вероятно, это избавит от многих проблем, если просто использовать существующую связь:
@post = Post.find(params[:id])
username = @post.user.username
Если вы, вероятно, будете запрашивать более одного сообщения за раз (например, на индексной странице, вызывая .includes
указание Rails на активную загрузку ассоциации поможет вам избежать проблемы N + 1 :
@posts = Post.includes(:user).all
Наконец, чтобы включить соответствующую запись в вывод JSON, передайте *Параметр 1012 * при сериализации:
# in controller
render :json => @post.to_json(:include => :user)
Этот вопрос включает в себя гораздо более всестороннее обсуждение вариантов сериализации. Стоит прочитать.