Скрепка не сохраняет изображение в модели - PullRequest
0 голосов
/ 01 февраля 2019

Я использую Paperclip для добавления изображений в мою модель AgentActivity, она отображается в форме, как и должно быть, однако при обновлении формы она, похоже, не сохраняется.Мой метод обновления контроллера сохраняет все параметры, кроме изображения, поэтому я думаю, что он настроен правильно, однако я не вижу, в чем причина?Я также настроил файл model.rb согласно предоставленной документации ...

Форма

 <%= image_tag @submission.agent_activities.last.image.url(:large) %>

 <%= form_for @submission, html: { multipart: true } do |f| %>

   <%= f.fields_for :agent_activity do |a|%>


      <td> <div class="field">

        <%= select_tag(:Status, options_for_select([['In Progress', 1], ['Not Interested', 2],['Viewing Arranged', 3]])) %>

      </div>
    </td>

    <td> <div class="field">
  <%= text_field_tag :Notes %>
 </div>
  </td>

   <%= f.file_field :image %>
  <td>
    <div class="actions">
      <%= f.submit %>
  </div>
</td>
<% end %>
  <% end %>

Метод обновления контроллера

   def update


respond_to do |format|

    if user_signed_in?
    @submission.update(submission_params)
    format.html { redirect_to @submission, notice: 'Submission was successfully updated.' }
    format.json { render :show, status: :ok, location: @submission }
  else

    if agent_signed_in?
      #AgentActivity.create(agent_activity_params)
    AgentActivity.create(agent_id: current_agent.id, submission_id: @submission.id, Notes: agent_activity_params[:Notes], Status: agent_activity_params[:Status] , image: agent_activity_params[:image])
    format.html { redirect_to @submission, notice: 'Activity was successfully updated.' }
    format.json { render :show, status: :ok, location: @submission }

  else
    format.html { render :edit }
    format.json { render json: @submission.errors, status: :unprocessable_entity }
  end
end
end

Параметры

    def agent_activity_params
  params.permit(:id, @submission.id, :Status, :Notes, :image)
    end

agent_activity.rb

  class AgentActivity < ApplicationRecord

  belongs_to :submission, :optional => true, inverse_of: 
  :agent_activities #has submission_id foreign key in table
   belongs_to :agent, :optional => true, inverse_of: :agent_activities 
  has_attached_file :image, styles: { large: "600x600>", medium: "300x300>", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
   validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/

end

Schema.rb

create_table "agent_activities", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "Status"
t.text "Notes"
t.bigint "agent_id"
t.bigint "submission_id"
t.string "image_file_name"
t.string "image_content_type"
t.integer "image_file_size"
t.datetime "image_updated_at"
t.index ["agent_id"], name: "index_agent_activities_on_agent_id"
t.index ["submission_id"], name: "index_agent_activities_on_submission_id"
end

1 Ответ

0 голосов
/ 01 февраля 2019

Избегайте скрепок.Используйте собственную функцию рельсов ActiveStorage, потому что скрепка устарела.Вы можете получить подробную информацию в документации к скрепке.

...