reference属性未保存到model的新实例

时间:2016-08-11 18:35:04

标签: ruby-on-rails

我在商务应用程序中有一个表单,用户可以在其中添加商品列表。

在此创建#项目表单中,我希望用户能够(从下拉菜单中)选择其定价的货币。

(我创建了一个货币模型,视图和控制器,以便管理员可以添加货币类型。(我希望管理员能够限制货币类型)。)

以下是迁移文件:

class CreateCurrencies < ActiveRecord::Migration
  def change
    create_table :currencies do |t|
      t.string :name
      t.string :symbol

      t.timestamps null: false
    end
  end
end

class AddCurrencyToApartments < ActiveRecord::Migration
  def change
    add_column :apartments, :currency_id, :integer
    add_index :apartments, :currency_id
  end
end

我在模型中将Currency和Item与belongs_to / has_many关系连接起来。然后,我在create#item表单中实现了一个下拉菜单,用户可以在其中选择货币。

<%= f.select( :currency, Currency.all.collect {|u| [ raw(u.symbol), u.id ] }) %>

我的问题是,为什么不将currency_id保存到项目模型的新实例?

它确实出现在params哈希:

{"utf8"=>"✓", "authenticity_token"=>"...w==", "item"=>{"Name"=>"Test Item", "from_date(1i)"=>"2016", "from_date(2i)"=>"8", "currency"=>"2", "price"=>"7"..... "description"=>""}, "commit"=>"Create Item"}

但是不会在提交中执行保存:

0.2ms) begin transaction SQL (1.0ms) INSERT INTO "items" ("name", "from_date", … "created_at", "updated_at") VALUES (?, ?, ?, ?, ?....) [["name", "Test Item"], ["from_date", "2016-08-11"], ["created_at", "2016-08-11 15:07:50.146172"], ["updated_at", "2016-08-11 15:07:50.146172"]]

我也无法从rails控制台成功将currency_id添加到公寓。

提前致谢!

1 个答案:

答案 0 :(得分:0)

将下拉菜单更改为&lt;%= f.select(:currency_id ,Currency.all.collect {| u | [raw(u.symbol),u.id]})% &GT;