我在简单的单页个人网站上工作,我喜欢ruby on rails并且我正在使用rails 4。 我有一个页面只叫home.html.erb,有点像滚动页面。现在在该页面的底部我想添加一个与我联系的表单,其中有人可以输入他的名字,单元格,其他数据,消息和点击发送。 我在这个主题上找到的大多数教程基本上都会生成一个新页面和一个新的控制器,我不想这样做。
如何在我工作的同一页面中实现这一目标?
答案 0 :(得分:1)
您可以使用导轨form helpers将表单添加到底部,并通过ajax
将信息发送到服务器答案 1 :(得分:0)
检查this railscast out。虽然它不是Rails 4,但它仍然有用。
答案 2 :(得分:0)
将表单添加到页面底部很容易,只需将您可能拥有的HTML放在页面底部即可。同样,您可以在主控制器中放置有关如何处理数据的说明,而不会出现任何问题。
更难以避免的是需要生成新模型,以便您有一个表来存储此信息 - 除非您将其写入txt文件,或通过电子邮件发送给自己。
以下是创建未连接到模型的表单的代码:
<% form_tag(:action => 'contact_me') %<
<table>
<tr>
<td><%= label_tag(:name) %></td>
<td><%= text_field_tag(:name) %></td>
</tr>
<tr>
<td><%= label_tag(:cell) %></td>
<td><%= text_field_tag(:cell) %></td>
</tr>
<tr>
<td> </td>
<td><%= submit_tag("Send Info") %></td>
</tr>
</table>
如果您打算创建模型:
<% form_for(:contact_me, :url => {:action => 'create', :controller => 'main'}) do |f| %>
<table>
<tr>
<td><%= f.label(:name) %></td>
<td><%= f.text_field(:name) %></td>
</tr>
<tr>
<td><%= f.label(:cell) %></td>
<td><%= f.text_field(:cell) %></td>
</tr>
<tr>
<td> </td>
<td><%= submit_tag("Send Info") %></td>
</tr>
</table>
后者更简单,因为您的控制器可以简单地:
def create
@contact = Contact.new(contact_params)
@contact.save
redirect_to(:action => 'main')
end
private
def contact_params
params.require(:contact_me).permit(:name, :cell)
end