簡體   English   中英

Refinerycms如何將圖像上傳到事件,但圖像已保存到finery_images表

[英]Refinerycms how to upload image to events, but the image saved to refinery_images table

新手,

我正在嘗試在我的Rails應用程序中使用fineryrycms,已經可以將圖像上傳到數據庫的煉油廠,我正在嘗試將其組合到我使用的擴展名“事件”擴展名中,因此當我創建一個新的事件時應該創建2個對象,將事件image_id作為圖像ID的外鍵,並將其保存到fineryry_images,

我已將遷徙image_id列添加到fineryry_event,並將此關系添加到event.rb模型中

belongs_to :image_id, :class_name => '::Refinery::Image'

在event_controller.rb中添加

def image_params
  params.require(:event).permit(:image_name, :image_size, :image_width, :image_height, :created_at, :updated_at)
end

def new
  @event = Event.new
  @image_id = Refinery::Image.new
end

def create
  @event = Event.new(event_params)
  @image_id = Refinery::Image.new(image_params)

  if @event.save
      begin
        Mailer.notification(@event, request).deliver_now
      rescue => e
        logger.warn "There was an error delivering the event notification.\n#{e.message}\n"
      end

      if Event.column_names.map(&:to_s).include?('email')
        begin
          Mailer.confirmation(@event, request).deliver_now
        rescue => e
          logger.warn "There was an error delivering the event confirmation:\n#{e.message}\n"
        end
      else
        logger.warn "Please add an 'email' field to Event if you wish to send confirmation emails when forms are submitted."
      end

      redirect_to refinery.thank_you_events_events_path
    else
      render :action => 'new'
  end
end

def event_params
 params.require(:event).permit(:nama, :deskripsi, :periode_start, :periode_end, :lokasi, :jumlah, :gender_id, :age_id, :event_types_id, :des_acara, :key_kata, :tipe_sponsor, :dana, :exposure, :enggagement, :image_id)
end

這是表格的樣子,

<%= form_for [refinery, :events, @event], :html => { :multipart => true } do |f| %>
  <%= render '/refinery/admin/error_messages',
             :object => @event,
             :include_object_name => true  %>

  <div class='field nama_field string_field'>
    <%= f.label :nama %>
    <%= f.text_field :nama %>
  </div>

  <div class='field deskripsi_field text_field'>
    <%= f.label :deskripsi %>
    <%= f.text_area :deskripsi, :rows => 8 %>
  </div>

  <div class="field">
    <p>
      <%= f.file_field :image_id %>
    </p>
  </div>

  <div class='actions'>
    <%= f.submit t('.send') %>
  </div>
<% end %>

而且我還被卡住了嗎? 如何使此表格生效? 有人可以教我嗎?

謝謝..

如此處回答: https : //groups.google.com/forum/#!msg/ refinery-cms/ 5RbAD079IPc/nVFGKdnfAQAJ

您可以使用內置的圖像選擇器,因為我們可以看到是否使用了生成器:

$ rails generate refinery:engine event nama:string deskripsi:text image:image

這將創建以下管理控制器:

module Refinery
  module Events
    module Admin
      class EventsController < ::Refinery::AdminController


        crudify :'refinery/events/event',
                :title_attribute => 'nama'


        private


        # Only allow a trusted parameter "white list" through.
        def event_params
          params.require(:event).permit(:nama, :deskripsi, :image_id)
        end
      end
    end
  end
end

和以下模板:

<%= form_for [refinery, :events_admin, @event] do |f| -%>
  <%= render '/refinery/admin/error_messages',

              :object => @event,
              :include_object_name => true
%>


  <div class='field'>
    <%= f.label :nama -%>
    <%= f.text_field :nama, :class => 'larger widest' -%>
  </div>


  <div class='field'>
    <%= render '/refinery/admin/wysiwyg',
                :f => f,
                :fields => [:deskripsi],
                :object => "events/event" -%>
  </div>


  <div class='field'>
    <%= f.label :image -%>
    <%= render '/refinery/admin/image_picker',
               :f => f,
               :field => :image_id,
               :image => @event.image,
               :toggle_image_display => false -%>
  </div>


  <%= render '/refinery/admin/form_actions', :f => f,
             :continue_editing => false,
             :delete_title => t('delete', :scope => 'refinery.events.admin.events.event'),
             :delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @event.nama) -%>
<% end -%>


<% content_for :javascripts do -%>
  <script>
    $(document).ready(function(){
      page_options.init(false, '', '');
    });
  </script>
<% end -%>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM