我对铁轨上的红宝石很新...
在我的_form.html.erb
我有一个collection_select
字段,该字段是从名为Product的模型填充的。产品的表格列为id, name, and price
。一旦我从集合中选择了一个项目(产品),我想用所选产品的价格填充一个文本字段。
到目前为止,我有以下代码IOT在选择项目时触发事件:
<%= collection_select( :warehouse, :product_id, Product.all, :id, :name, {}, {:onchange => "alert('Hello World');"} )%>
如何调用ruby方法,让我使用所选产品的相应价格填充text_field?
对于我正在考虑的方法......
def set_price
@price = Product.find(params[:id]).price
end
答案 0 :(得分:0)
erb片段
<%= collection_select( :warehouse, :product_id, Product.all, :id, :name, {}, {:onchange => "alert('Hello World');"} )%>
生成像这样的html片段
<select name="warehouse[product_id]" onchange="alert('Hello World');">
<option value="1">Product 1</option>
<option value="2">Product 2</option>
...
</select>
所以onchange
的内容只是一段在浏览器上运行的javascript。没有办法让onchange
直接运行ruby代码。您所能做的就是在onchange
中发送一个AJAX请求,让您的Rails应用程序响应该请求。