Ruby on rails 如何从模型数据库获取数据以填写另一个模型表单
我还是rails的初学者。我想根据关联选择,用数据库中已有的另一个模型的数据填充模型中的某个表单字段。下面是我的代码 股票购买模式Ruby on rails 如何从模型数据库获取数据以填写另一个模型表单,ruby-on-rails,ruby,Ruby On Rails,Ruby,我还是rails的初学者。我想根据关联选择,用数据库中已有的另一个模型的数据填充模型中的某个表单字段。下面是我的代码 股票购买模式 class StockPurchase < ApplicationRecord belongs_to :stock end class Stock < ApplicationRecord has_many :stock_purchases end 从表格中,我想根据所选股票从数据库中填写到期日和售价 请告诉我该怎么做。这将在下拉选择字
class StockPurchase < ApplicationRecord
belongs_to :stock
end
class Stock < ApplicationRecord
has_many :stock_purchases
end
从表格中,我想根据所选股票从数据库中填写到期日和售价
请告诉我该怎么做。这将在下拉选择字段中显示股票,用户选择股票,然后您可以在控制器中提取到期日期和售价,当然只需将变量切换到您设置的值即可
<%= f.field_container :stock do %>
<%= f.label :stock %>
<%= f.select :stock_id, options_for_select(Stock.all.map{|s|[s.name, s.id]}) %>
<% end %>
但是,您不必提取这些属性并在股票购买中重复自己的操作,因为您可以从股票购买的子项调用这些属性(售价、到期日),如
StockPurchase.stocks.all.first.selling\u price
但这当然取决于变量的命名方式控制器中是否有代码?控制器中是否只有“new”或“edit”?您在上面发布的“表单”是否重复用于“新建”和“编辑”?因为这是您刚刚创建的新方法“@stock\u purchase”没有字段,所以您必须先填充这些字段,然后才能转到您的表单。尝试控制器“@stock\u purchase.expiration\u date=DateTime.now”感谢snake的评论,但我想实现的是,当从stock select字段中选择股票时,到期日和售价应该使用所选的股票id从所选股票数据库表中获取,并填写到期日和售价U可以使用JS实现这一点。创建一个事件侦听器,该侦听器在选择更改时激发。让它向服务器发出AJAX请求,然后发回您需要的数据。谢谢您的回答。我真的想用javascript/jquery或ajax在选择股票后自动从数据库中获取股票售价和有效期,并用它填充售价和有效期输入字段。我还是搞不懂
def new
@stock_purchase = current_user.stock_purchases.build
@stocks = Stock.all
end
<%= f.field_container :stock do %>
<%= f.label :stock %>
<%= f.select :stock_id, options_for_select(Stock.all.map{|s|[s.name, s.id]}) %>
<% end %>