Rails - 将选项保存到DB(onChange)

时间:2016-05-02 19:44:11

标签: ruby-on-rails ruby database

我正在尝试将选项保存到数据库。

  • 有一个默认值' nil'我希望能够通过(受让人和结果)
  • 的选项更新它
  • 我从 BitBucket 提取提交并保存到数据库

更新数据库的最佳方法是什么? 因为我不确定如何做到这一点(通过表单或有不同的提交方式,如 onChange )?

手动更新

  • rails c
  • commit = Bitbucket.fist / .last / .find()
  • commit.result / .assignee =" 1/2/3/4"
  • commit.save

移植

class CreateBitbuckets < ActiveRecord::Migration
  def change
    create_table :bitbuckets do |t|
      t.string :name
      t.text :message
      t.text :date
      t.datetime :remain, :null => false, :default => Time.now
      t.integer :assignee
      t.integer :result

      t.timestamps null: false
    end
  end
end

查看

<% @commits.each do |commit| %>
  <tr class="tableBody">
    <th width="10%" class="author"><%= commit.name %></th>
    <th width="25%" class="message"><%= commit.message %></th>
    <th width="15%" class="date"><%= DateTime.strptime(commit.date, '%Y-%m-%dT%H:%M:%S%z').strftime("%D %r") %></th>
    <th width="20%" class="timeRem"><%= commit.remain.strftime("%r") %></th>
    <th width="15%" class="assignee">
       <%= select_tag(:assignee, options_for_select([['Ziggy', 1], ['Libor', 2], ['Cam', 3], ['Mike', 4]], commit.assignee))%>
    </th>
    <th width="15%" class="result">
       <%= select_tag(:result, options_for_select([['Waiting', 1], ['Success', 2], ['Broken - Not Submitted', 3], ['Broken - Quick Win', 4]], commit.result))%>
    </th>
  </tr>
<% end %>

1 个答案:

答案 0 :(得分:1)

看一下这篇文章:http://www.theodinproject.com/ruby-on-rails/advanced-forms

将Rails ERB语言用于select / options并将选择的值保存到实例变量要容易得多。然后,控制器将通过模型将数据保存到DB。