Статический сайт, встроенный в приложение RoR

0

Недавно просто перенесли весь наш сайт в приложение RoR (путем переноса всех каталогов) в общую папку. Причина, по которой мы это сделали, заключается в том, что мы планируем создать наш сайт с новыми функциями и хотим начать хранить данные в db из разных форм.

В настоящее время все эти формы построены в HTML... Я смущен тем, как их перестроить в приложении RoR, чтобы сохранить его в базе данных.

Я настроил контроллер "подписки" и модель с соответствующими атрибутами, но смутился, когда буду дальше.

Теги:
database
forms

1 ответ

0
Лучший ответ

Вы можете попытаться извлечь формы в Views и загрузить их с помощью ajax на ваши статические шаблоны.

Предположим, вам нужно create form для модели Subscription. Добавить в SubscriptionController два действия:

class SubscriptionController < ApplicationController
  skip_before_filter :verify_authenticity_token

  # action to add page form via ajax
  def new
    @subscription = Subscription.new
  end

  # submit form
  def create 
    subscription = Subscription.new(subscription_params(params))
    subscription.create!
    render :file => 'public/greetings.html' and return  
  end

Примечание: вам нужно добавить resources :subscriptions на файл routes.rb.

Создайте частичный файл, который сделает форму частичным через ajax:

#app/views/subscriptions/new.js.erb
$(".new-subscription-container").update("<%= escape_javascript(render('subscriptions/form')) %>");

Создать форму частично:

#app/views/subscriptions/_form.html.erb
<%= form_for @subscription, url: {action: "create"} do |subscription_form| %>
  <%= subscription_form.text_field :user_name %> <!-- field from model -->
  <!-- ... other fields -->
  <%= submit_tag "Create!" %>
<% end %>

Обновите статический шаблон: добавьте div с именем класса 'new-subscription-container'.

Добавьте вызов ajax в ваш общедоступный шаблон:

<script type="text/javacsript">
  $(function() {
    $.ajax({type:"GET",url:"/subscriptions/new.js"});
  });
</script>

Попробуй это. Чтобы спамить спан, добавьте капчу. ps: Не отлаживается, просто от головы.

  • 0
    точно не знаю, с чего начать ... В данный момент все находится в общей папке ... Также настройте мою модель пользователя и контроллер. Существуют две разные формы в двух разных каталогах ... Начиная с первой, я хотел бы получить форму, захваченную базой данных. Можно ли создать _form.html.erb в моем приложении / users / views / и вызвать визуализацию из общей папки? Или как я могу сделать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню