我的文本字段值未发布在postgresql数据库中。我创建了一个名为 sample 的简单表单。此代码使用控制器中的“sample”:
def sample
title = params[:title]
sample=Sample.new(title)
sample.save()
end`
我还在views:
中创建了sample.hamlsample.haml
= form_for :sample, url: sample_path do |f|
%p
= f.label :title
%br/
= f.text_field :title
%p
= f.submit
我创建了名为 20161129160810_create_sample 的迁移文件:
class CreateSample < ActiveRecord::Migration
def change
create_table :samples do |t|
t.string :title
t.timestamps
end
end
当我们给出'title'值并单击提交按钮时,'id'值存储在'sample'表中,但'title'值在表中显示为空。我该如何解决这个问题?
答案 0 :(得分:1)
试试这个
sample=Sample.new(title: params[:sample][:title])
答案 1 :(得分:1)
使用form_tag
(form_tag只生成HTML表单标记)而不是form_for
(form_for生成与rails应用中的资源相关联的HTML表单)
查看文件app/views/pages/sample.haml
= form_tag sample_path, :method => 'get' do
= text_field_tag :title, params[:title]
= submit_tag "Save"
控制器路线
# config/routes.rb
get '/sample' => "pages#sample", :as => :sample
然后在您的控制器操作app/controllers/pages_controller.rb
def sample
title = params[:title]
sample = Sample.create(title: title)
end