Я обновлю ответ для рельсов 4.х и НПЗ 3.х
Создайте новую миграцию, добавив новое поле image_id в модель refinery_blog_posts:
rails generate migration add_image_id_to_refinery_blog_posts image_id:integer
Затем запустите миграцию:
rake db:migrate
Теперь вам нужно создать файл в каталоге decorators / refinery / blog / со следующим именем post_decorator.rb и затем написать в нем этот код:
декораторы / завод / блог / post_decorator.rb
Refinery::Blog::Post.class_eval do
belongs_to :image, :class_name => '::Refinery::Image'
end
Когда декоратор будет готов, вам нужно будет добавить новое поле image_id в controllers / refinery / blog / admin / posts_controller.rb к разрешенным параметрам, например:
Контроллеры / завод / блог / администратор / posts_controller.rb
def post_params
params.require(:post).permit(:title, :body, :custom_teaser, :image_id, :tag_list, :draft, :published_at, :custom_url, :user_id, :browser_title, :meta_description, :source_url, :source_url_title, :category_ids => [])
end
После вышесказанного, единственное, что останется, это добавить новое поле image_id в форму, чтобы иметь возможность добавить изображение в этом случае в сообщение:
вид / завод / блог / администратор / сообщений / _form.html.erb
<div class="field">
<%= f.label :image_id, "Post Image" %>
<%= render :partial => "/refinery/admin/image_picker", :locals => {
:f => f,
:field => :image_id,
:image => f.object.image,
:toggle_image_display => false
}
%>
</div>
Теперь все готово, выполнив эти шаги, вы сможете добавить любое поле в модель нефтеперерабатывающего завода, например в данном случае сообщение.
Надеюсь, это поможет:)