Как добавить поля для формы с самоцветом carrierwave? - PullRequest
0 голосов
/ 13 марта 2019

Я знаком с кодом типа

Video.create(title: 'title') 

, который, если вы добавите к этому, вы можете добавить больше значений при создании записи

Video.create(title: 'title', value: 'value') 

Я пытаюсь выяснить, как сделать это с гемом carrierwave, но поскольку форма была сгенерирована автоматически, я не уверен, как ее настроить. Например, как мне добавить значение 'value', которое будет добавлено в таблицу Videos, при условии, что столбец существует.

_form.html.erb

<%= form_for(@video) do |f| %>
  <% if @video.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@video.errors.count, "error") %> prohibited this video from being saved:</h2>

      <ul>
      <% @video.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </div>

  <div class="field">
    <%= f.label :file %><br>
    <%= f.file_field :file %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

new.html.erb

<h1>New Video</h1>

<%= render 'form' %>

<%= link_to 'Back', videos_path %>

Контроллер видео

def new
  @video = Video.new
end

def create
  @video = Video.new(video_params)

  respond_to do |format|
    if @video.save
      format.html { redirect_to @video, notice: 'Video was successfully created.' }
      format.json { render :show, status: :created, location: @video }
    else
      format.html { render :new }
      format.json { render json: @video.errors, status: :unprocessable_entity }
    end
  end
end

1 Ответ

0 голосов
/ 13 марта 2019

Вы хотите сохранить загруженное видео в поле value, верно?В этом случае вы можете использовать value в качестве имени поля файла.Также убедитесь, что вы установили загрузчик, как показано ниже:

 mount_uploader :value, VideoUploader

, где VideoUploader - это имя загрузчика.

см. как загрузить видео с помощью Carrierwave

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...