gpt4 book ai didi

ruby-on-rails - Refinerycms-将图像字段添加到博客引擎

转载 作者:行者123 更新时间:2023-12-04 04:53:52 25 4
gpt4 key购买 nike

我有一个带有社区博客引擎的fineryrycms应用程序。我想在blog_post中添加一个图像字段,以便为该帖子选择一个主图像,并将其显示在我的 View 中。

我尝试添加图像字段,没有任何乐趣。然后,我查看了其他具有图像字段的自定义引擎,该引擎使用image_id链接到主图像表,因此我尝试添加一个image_id字段,并编辑blog_post模型以具有相同的'belongs_to'行。博客加载的编辑页面,并且图像选择器部分工作,但是当我单击“保存”时,似乎没有任何内容发送到我的表中。

与我有关的一件事是,当我使用image字段创建自定义引擎时,将其指定为字段类型image。这似乎是在后端创建了image_id字段,并进行了所有设置,因此我仍然可以引用图像类。将图像字段添加到博客并没有这样做,只是创建了一个名为image的字段类型。在为我的自定义引擎检查表时,没有称为image的字段类型,因此某个地方存在一些无法重新创建的转换魔术。

目前,我有以下代码:

创建了此迁移:

class AddPictureToBlog < ActiveRecord::Migration
def self.up
add_column :blog_posts, :main_image_id, :integer
end

def self.down
remove_column :blog_posts, :main_image_id
end
end

将此添加到blog_post模型:
  belongs_to :main_image_id, :class_name => 'Image'

并在 View 上显示以下内容:
    <%= f.label :main_image_id -%>
<%= render :partial => "/shared/admin/image_picker", :locals => {
:f => f,
:field => :main_image_id,
:image => @blog_post.main_image_id,
:toggle_image_display => false
} %>

自定义引擎甚至没有引用_id字段,因此我不知道这里缺少哪些链接。任何帮助将不胜感激。可能根本不是炼油厂特定的问题-我是铁路新手,所以这里可能缺少一些基本知识。

谢谢!

最佳答案

对于rails 3.2.3和refinerycms 2.0.0,可以使用以下代码,

创建一个新的迁移:

rails generate migration add_image_id_to_refinery_blog_posts image_id:integer
rake db:migrate

在“decorators/refinery/blog/”下创建文件post_decorator.rb

添加以下几行,
Refinery::Blog::Post.class_eval do
# Whitelist the :image_id parameter for form submission
attr_accessible :image_id
belongs_to :image
end

生成炼油厂表格文件:
rake refinery:override view=refinery/blog/admin/posts/_form

并在“views/refinery/blog/admin/posts/_form.html.erb”中添加以下代码
<div class="field">
<%= f.label :image_id %>
<%= render :partial => "/refinery/admin/image_picker", :locals => {
:f => f,
:field => :image_id,
:image => f.object.image,
:toggle_image_display => false
}
%>
</div>

有关更多详细信息,请参阅链接 extending-models

关于ruby-on-rails - Refinerycms-将图像字段添加到博客引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com