ruby on rails - Refinerycms how to upload image to events, but the image saved to refinery_images table -


newbie in rails,

i'm trying use refinerycms in rails app, refinery available upload images database, i'm trying combine extension use, "events" extension, when create new events should create 2 object, events refinery_event table have image_id foreign key images id, , event image attribute saved refinery_images,

i've add migrations image_id column refinery_event , put relation event.rb models

belongs_to :image_id, :class_name => '::refinery::image' 

add in 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 error delivering 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 error delivering event confirmation:\n#{e.message}\n"         end       else         logger.warn "please add 'email' field event if wish send confirmation emails when forms 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 

and form looks like,

<%= form_for [refinery, :events, @event], :html => { :multipart => true } |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 %> 

and i'm stuck else ? how make form work? can teach me?

thanks..

as answered here: https://groups.google.com/forum/#!msg/refinery-cms/5rbad079ipc/nvfgkdnfaqaj

you can use built in image picker, can see if use generator:

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

this creates following admin controller:

module refinery   module events     module admin       class eventscontroller < ::refinery::admincontroller           crudify :'refinery/events/event',                 :title_attribute => 'nama'           private           # allow trusted parameter "white list" through.         def event_params           params.require(:event).permit(:nama, :deskripsi, :image_id)         end       end     end   end end 

and following template:

<%= form_for [refinery, :events_admin, @event] |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 -%>   <script>     $(document).ready(function(){       page_options.init(false, '', '');     });   </script> <% end -%>