最近刚刚将我们的整个网站转移到了一个RoR应用程序(通过将所有目录引入)到公共文件夹中。我们这样做的原因是我们计划使用新功能构建我们的站点,并希望从各种表单开始在数据库中存储数据。
目前所有这些表单都是用HTML构建的...我对如何在RoR应用程序上重建这些表单感到困惑,因此将其保存到数据库中。
我已经设置了一个“订阅”控制器和具有适当属性的模型,但在下一步我感到困惑。
答案 0 :(得分:0)
您可以尝试将表单提取到Views,并通过静态模板上的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 %>
更新您的静态模板:使用classname&#39; new-subscription-container&#39;添加div。
向您的公共模板添加ajax调用:
<script type="text/javacsript">
$(function() {
$.ajax({type:"GET",url:"/subscriptions/new.js"});
});
</script>
测试一下。要发送垃圾邮件,请添加验证码。 p.s。:没有调试,只是从头开始。