【问题标题】:Static Site Incorporated in RoR AppRoR 应用程序中包含的静态站点
【发布时间】:2014-04-06 01:24:35
【问题描述】:

最近刚刚将我们的整个网站转移到一个 RoR 应用程序中(通过将所有目录)转移到公用文件夹中。我们这样做的原因是我们计划使用新功能构建我们的网站,并希望开始将数据从我们的各种形式存储到数据库中。

目前所有这些表单都是用 HTML 构建的......我对如何在 RoR 应用程序上重建这些表单以便将其保存到数据库感到困惑。

我已经设置了一个“订阅”控制器和具有适当属性的模型,但我对下一步的去向感到困惑。

【问题讨论】:

    标签: html ruby-on-rails ruby database forms


    【解决方案1】:

    您可以尝试将表单提取到视图中,并通过 ajax 将它们加载到您的静态模板上。

    假设,您需要为订阅模型创建create form。 向 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 %>
    

    更新您的静态模板:添加类名为“new-subscription-container”的 div。

    将 ajax 调用添加到您的公共模板:

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

    测试一下。要屏蔽垃圾邮件,请添加验证码。 p.s.:没有调试,只是从头开始。

    【讨论】:

    • 不确定从哪里开始...目前所有内容都在公共文件夹中...另外,设置我的用户模型和控制器。两个不同的目录中有两种不同的表单...从第一个开始,我想获取数据库捕获的表单。是否可以在我的 app/users/views/ 中创建 _form.html.erb 并从公共文件夹中调用 render?或者我该怎么做。
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2021-07-12
    • 1970-01-01
    • 2015-02-06
    相关资源
    最近更新 更多