【发布时间】:2018-09-10 14:40:36
【问题描述】:
这是我的代码
来自 index.html.erb
<%= form_for index_path, :method => "POST" do %>
<%= label_tag :name, "Enter your full name: " %>
<%= text_field_tag :name, @name, :placeholder => "Enter your name" %><br/>
<%= label_tag :email, "Enter your e-mail address: " %>
<%= email_field_tag :email, @email, :placeholder => "something@domain.com" %><br/>
<%= label_tag :question, "Type your question: " %>
<%= text_area_tag :question, @question, :size => "30x5", :placeholder => "Your text goes here", :maxlength => "130" %><br/>
<%= submit_tag "" %>
来自博客控制器
class BlogController < ApplicationController
def index
@name = params['name']
@email = params['email']
@question = params['question']
end
def about
end
def contact
end
end
来自seeds.rb:
Invitation.create(:name => "#{@name}", :email => "#{@email}", :question => "#{@question}")
当我填写所有字段并提交时,它会在数据库中创建空白记录,我做错了什么?
【问题讨论】:
-
这与您的问题没有直接关系。但是...您尝试在
index操作中创建记录似乎很不寻常。此外,您似乎正在尝试在BlogController中创建Invitation,这似乎也很不寻常。为什么不使用InvitationController的create操作? -
我只是想知道如何在不使用脚手架的情况下创建自己的表单并将其与模型连接起来。做这个只是为了测试,谢谢
-
试着摆脱像
"#{x}"这样的习惯,x是你的意思,或者在极少数情况下x.to_s强制它成为一个字符串。还可以尝试使用 Ruby 1.9 哈希声明样式,它已经存在了很长时间:create(name: @name, email: @email, ...)它不那么冗长,并且与其他语言更一致。 -
注意:如果您正在编辑模型,预计您将使用
form_for并传入模型,然后使用form.email_field等等。
标签: ruby-on-rails ruby database