виртуальная модель и form_for (или formtastic)

Я собираюсь, должны сказать MediaInfo, я использовал его больше года с приложением кодирования аудио/видео, я продолжаю работать. Это дает всю информацию для wav файлов почти наряду с любым форматом.

MediaInfoDll Идет с демонстрационным кодом C# того, как получить его работа.

6
задан Nakilon 30 April 2016 в 13:14
поделиться

3 ответа

Во-первых, Formtastic не нуждается в модели во всех случаях, хотя он, безусловно, работает лучше всего и требует меньше кода с моделью.

Так же, как встроенный в Rails form_for , вы можете передать символ вместо объекта в качестве первого аргумента, и Formtastic построит форму и отправит параметры на основе символа. Например:

<% semantic_form_for(:session) do |f| %>
  ...
<% end %>

Это сделает значения формы доступными для вашего контроллера как params [: session] .

Во-вторых, модель не означает ActiveRecord модель. Я имею в виду, что Formtastic будет работать с любым экземпляром класса, который крякнет как модель ActiveRecord.

Классический пример того, многие люди используют Authlogic для аутентификации с Formtastic. Частью Authlogic является идея модели UserSession, которая отлично работает:

Контроллер:

def index
  @user_session = UserSession.new
end

Форма:

<% semantic_form_for(@user_session) do |f| %>
  <%= f.input :login %>
  <%= f.input :password %>
<% end %>

Это сделает ваши данные формы доступными в вашем контроллере как params [: user_session] .

Это , на самом деле не так уж и сложно создать экземпляр модели, чтобы обернуть проблемы, связанные с вашей моделью. Просто продолжайте реализовывать методы, ожидаемые Formtastic, пока они не заработают!

18
ответ дан 8 December 2019 в 13:00
поделиться

Или вы просто создаете форму с помощью form_for и оставляете ссылку на модель пустой. например <% form_for "",: url => some_url do | f | %> <% = f.text_field "some_attribute"%> <% = submit_tag "submit"%>

Вы можете получить значения, просто произнеся params [: some_attribute] в вашем контроллере.

-1
ответ дан 8 December 2019 в 13:00
поделиться

default_language.rb

class DefaultLanguage
  attr_accessor :language_id
end

foo_controller.rb

  def index
    @default_language = params[:default_language] || Language.find_by_name("English")
  end

index.erb

<% semantic_form_for @default_language do |form| %>
  <% form.inputs :id => 'default_language' do %>
      <%= form.input :id, 
       :as => :select, 
       :collection => @languages, 
       :required => false, 
       :label => "Primary Language:", 
       :include_blank => false %>
    <% end %>
  <% end %>

Я использовал Ajax для опубликовать форму, когда значение изменилось.

1
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: