Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 1.91 KB

step3.md

File metadata and controls

64 lines (43 loc) · 1.91 KB

Et bilde sier mer enn tusen ord

Vi skal nå gjøre det mulig å laste opp bilde til et moment og vise dette.

Vi følger guiden på https://edgeguides.rubyonrails.org/active_storage_overview.html

Først vil jeg konfigurere opp en streng regel som gjør feil parametre i requests tydelige i stedet for usynlige

Legg til denne linjen i config/application.rb

config.action_on_unpermitted_parameters = :raise

Tilbake til guiden for bildeopplastning. Vi må kjøre installasjon:

rails active_storage:install

Vi må fortelle hvilken klasse/model som skal ha bildet.

Det definerer vi i filen app/models/moment.rb

has_one_attached :photo

Deretter må legge til opplastningen i create/edit skjemaet i filen app/views/moments/_form.html.erb:

<%= form.file_field :photo %>

Nå sendes bilde fra klienten til serveren, men for at serveren skal kunne mota bilde må vi fortelle den at den aksepterer bilder. dette gjør vi ved å legge til "photo" som paramater i metoden moments_param fra kontrolleren app/controllers/moments_controller.rb

def moment_params
 params.require(:moment).permit(:description, :photo)
end

Til slutt må vi vise bildet, sammen med kommentarer i filen app/views/moments/show.html.erb

  <p>
    <strong>
    <%= @moment.description %>
    </strong>
  </p>

  <p>
    <%= image_tag(@moment.photo, width: '500px') if @moment.photo.attached? %>
  </p>
  <p> <%= @moment.reactions.count %> reaksjoner </p>

  <% @moment.reactions.each do |reaction| %>
    <p><%= reaction.awe %></p>
  <% end %>

Fortsett til ekstraoppave - stilsetting

Fortsett til ekstraoppave - Add Reaction to Moment

Ekstraoppgave: brukerinnlogging