【发布时间】:2015-02-13 03:14:06
【问题描述】:
我正在尝试在我的应用程序中使用预制的通用 HTML/CSS/Javascript 表单作为 Rails 表单。我一直使用 rails form_for 创建表单,但我正在尝试使用来自 CodeCanyon 的套件/框架,名为 Munda Forms。
我已经包含了它已经使用的所有框架,并且表单在我的应用程序中看起来正确,但我还没有找到一种简单的方法让它与我的控制器和模型很好地工作。
有没有一种简单的方法可以在我的应用中使用这种预制设计?基本上,我在问如何只使用直接的 HTML/CSS 将输入表单数据传递到我的控制器中。当我尝试传递它时,我不断收到authentity_token 错误,因为我没有使用Rails form_for 助手。
提前致谢!
这是我可以向您展示的最简单的示例。这是我给出的 HTML 示例。我也获得了 CSS 和 Javascript,但我认为没有必要进行编辑。
下面是我正在编辑的视图 (_client_form1.html.erb)。
<div class="form-container tabs-form animated fadeInDown">
<form action="" method="post" enctype="multipart/form-data" id="tabs-form" class="rcw-form container-fluid">
<header>
<h3 class="form-main-heading">Page 1/4: Basic Info</h3>
</header>
<fieldset class="row">
<div class="col-md-12">
<legend><span>Select your charge.</span></legend>
</div>
<div class="form-group col-md-12">
<div id="tabs-example-1">
<ul>
<li><a href="#tab-1"><span class="icon-home22"></span>DUI</a></li>
<li><a href="#tab-2"><span class="icon-globe"></span>DWAI</a></li>
<li><a href="#tab-3"><span class="icon-newspaper3"></span>DUID</a></li>
</ul>
<div id="tab-1">
<p>TAB1 TAB1 TAB1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Explicabo, omnis.</p>
</div>
<div id="tab-2">
<p>TAB2 TAB2 TAB2 Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<div id="tab-3">
<p>TAB3 TAB3 TAB3 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, consectetur.</p>
</div>
</div>
</div>
</fieldset>
<fieldset class="row">
<div class="form-group col-md-12"><span class="label">Number of Offenses</span>
<div class="row">
<div class="col-sm-10">
<div id="increments-slider"></div>
</div>
<div class="col-sm-2"><span id="increments-amount" class="amount"></span></div>
</div>
</div>
</fieldset>
<fieldset class="row">
<div class="form-group col-md-4">
<label for="zipcode" class="sr-only">Zip Code</label>
<input type="text" name="zipcode" id="zipcode" placeholder="Zip Code" class="form-control ff-rounded">
</div>
</fieldset>
<footer class="ff-rounded-b">
<input type="submit" name="submit" value="Submit" style="margin-right: 10px;" class="btn btn-primary ff-rounded">
</footer>
这是我的控制器,(contacts_controller.rb) 一个非常基本的邮件程序。我的contact.rb模型
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
@contact.request = request
if @contact.deliver
flash[:success] = "Thanks for reaching out. We will get back to you back shortly!"
redirect_to '/'
else
render 'new'
end
end
end
如果有帮助,我还添加了我的模型接受的字段。
class CreateContacts < ActiveRecord::Migration
def change
create_table :contacts do |t|
t.string :name
t.string :email
t.string :phone
t.string :offenseType
t.string :offenseNumber
t.string :bestDay
t.string :rankImportance
t.string :comments
t.timestamps
end
end
end
我的代码和您的建议的错误是:“ActionController::InvalidAuthenticityToken in ContactsController#create”
还有其他想法吗?
我的应用程序.html:
<!DOCTYPE html>
<html>
<head>
<title> <%= full_title(yield(:title)) %> </title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
<%= favicon_link_tag %>
<%= render 'layouts/shim' %>
</head>
<body>
<%= render 'layouts/header' %>
<div style="margin-bottom: 100px;"> </div>
<%= yield %>
<div class="container">
<%= render 'layouts/footer' %>
</div>
</body>
</html>
routes.rb:
resources :contacts, only: [:new, :create]
match '/contact_us', to: 'contacts#new', via: 'get'
match '/contact_us', to: 'contacts#create', via: 'post'
使用 Aswin Ramakrishnan 发布的 html 代码和脚本,这是 webBrick 服务器的输出。
Started POST "/contacts" for 127.0.0.1 at 2015-02-12 23:26:58 -0700
Processing by ContactsController#create as HTML
Parameters: {"authenticity_token"=>"uybxcY9FfrfoYo/UrvChbYPp3oB8aBv3YLu2u1e4/JE=", "contact"=>{"name"=>"test name", "email"=>"test email", "phone"=>"5555555555"}}
Rendered contacts/_client_form5.html.erb (0.2ms)
Rendered contacts/new.html.erb within layouts/application (1.1ms)
Rendered layouts/_shim.html.erb (0.2ms)
Rendered layouts/_header.html.erb (0.2ms)
Rendered layouts/_footer.html.erb (0.2ms)
Completed 200 OK in 36ms (Views: 33.9ms | ActiveRecord: 0.0ms)
【问题讨论】:
-
Rails 表单最终呈现为 HTML 表单。例如,您可以发布一个表格吗?连同您的控制器代码。我们可以告诉您您需要做什么。
-
解决了令牌问题后,您遇到了什么错误?
-
我已经添加了来自 Aswin 的给定分析器的情况。
标签: html ruby-on-rails ruby forms ruby-on-rails-4