从表单中保存数据库中的值

时间:2016-11-30 13:21:29

标签: ruby-on-rails postgresql

我的文本字段值未发布在postgresql数据库中。我创建了一个名为 sample 的简单表单。此代码使用控制器中的“sample”:

def sample
  title = params[:title]
  sample=Sample.new(title)
  sample.save()
end`

我还在views:

中创建了sample.haml

sample.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'值在表中显示为空。我该如何解决这个问题?

2 个答案:

答案 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