Это мое первое реальное приложение, которое я создаю и развертываю. Я бегу на Ruby 2.2.4p230
& Rails 4.2.5.1
. Поэтому у меня есть статические страницы high_voltage для основных страниц моих приложений, которые в основном статичны, и я хотел бы, чтобы они извлекали фрагменты контента из базы данных. Эти фрагменты будут использоваться на нескольких страницах или для добавления подсказок к функциям приложений.Сделать Rails процесс HTML из базы данных
Я также создал Page
модель с помощью:
rails g model Page name:string content:text
Чтобы увидеть, если я мог бы получить что-нибудь, чтобы вынести из моего Pages
стола, я тогда пытался использовать:
<%= raw @page.content %>
я получил все это следующим образом: How to have Rails Views process HTML tags from database content?
При этом возникает следующая ошибка:
undefined method `content' for nil:NilClass
Я попытался добавить:
# app/models/page.rb
def pageParams
params.require(:content).permit(:content, :name, :id, :created_at, :updated_at)
end
Это до сих пор не дали мне ничего. Как я уже сказал, я очень новичок в рельсах, так как это мое первое истинное приложение, которое я планирую ввести в производство. Я пробовал много других способов получить html для рендеринга туда безрезультатно. Большинство методов я нахожу больше не работать на Rails 4.2.5.1
Как это должно быть сделано с высоким напряжением
#app/controller/Pages_Controller.rb
class PagesController < ApplicationController
PageIndex = Page.find_by_name('index').content
end
Тогда в High Voltage представление должно содержать:
<%= PagesController::PageIndex %>
Вы должны использовать Pages_Controller для вызова их в High_Voltage. Я попытался поместить этот же код в контроллер приложения, Application Helper, и он продолжал говорить High_Voltage NoMethodError. Как только я поместил код в # app/controller/Pages_Controller.rb, он работал отлично. Вот почему я отдал должное правильному ответу на Ven. Вен показал мне правильный способ сделать это. Но я сделал еще один шаг и решил сделать постоянную, а не глобальную переменную. Ответ Стива также правилен и первоначально дал ему кредит, пока я не получил ответ Vens, который является правильным методом для этого, согласно всем документам Rails. Стив предоставил мне полезное обходное решение, которое отлично работает.
Вы можете явно получить запись ... '<% = raw Page.first.content%>' или '<% = raw Page.find_by (name:" my_page "). Content%>' – SteveTurczyn
Thak you so много. Я знал, что мне не хватает чего-то простого. Теперь есть причина, по которой я не хотел бы этого делать? –
@SteveTurczyn может перенаправить ваш ответ в качестве ответа, чтобы я мог дать вам кредит на это? –