Как использовать запись базы данных в качестве мета-описания с ruby ​​на рельсах - PullRequest
0 голосов
/ 18 мая 2018

Я создаю блог и хочу, чтобы мета-описание было уникальным для каждого сообщения в блоге. Я собирался использовать поле базы данных :summary для извлечения текста, чтобы заполнить @page_description = ''; в контроллере.

Как бы я ввел это в posts_controller, чтобы он использовал t.string "summary", который будет с каждым постом?

posts_controller:

def show
  @title = 'My Blog';
  @page_description = '';
  @post = Post.find(params[:id])
  @comment = current_user.comments.build if logged_in?
end

schema.rb:

create_table "posts", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "title"
t.text "body"
t.string "summary"
t.string "thumbnail_link"

конец

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Вы просто хотите заполнить его первыми 160 символами основного текста, верно?Почему бы вам просто не создать для этого метод экземпляра?

class Post < ApplicationRecord
  def meta_descr
    return body[0..160]
  end
end

И использовать его так:

def show
  @title = 'My Blog';
  @post = Post.find(params[:id])
  @page_description = @post.meta_descr
  @comment = current_user.comments.build if logged_in?
end
0 голосов
/ 18 мая 2018

Вы можете использовать сводку после получения сообщения

posts_controller:

def show
  @title = 'My Blog';
  @post = Post.find(params[:id])
  @page_description = @post.summary;
  @comment = current_user.comments.build if logged_in?
end

И добавить проверку в модель

Модель сообщения:

class Post < ApplicationRecord
  validates :summary, uniqueness: true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...