Rails4中的价格输入

时间:2013-07-29 06:16:34

标签: ruby-on-rails migration simple-form ruby-on-rails-4

我最近切换到Rails4而且我是。不。获得。的东西。至。工作...

ANSWER: As Aman remembered me, in Rails 4 we have to filter attributes in the Controller.

我想将定价添加到我的列表脚手架。

1。)生成迁移

rails g migration AddPriceToListings price:decimal

2。)编辑迁移:

add_column :listings, :price, :decimal, :precision => 8, :scale => 2

3。)将输入添加到我的表单

<!-- Price Field -->
<div class="control-group">
  <label class="control-label">Price</label>
  <div class="controls">
    <%= f.input :price, :placeholder => "0.00", label: false %>
  </div>
</div>

4.。)在Showpage上

<%= number_to_currency(@listing.price, :unit => "$") %>

但在我的Shopage上什么都没有。价格没有显示。它甚至没有显示在数据库中。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

在Rails4中,如果您通过表单进行批量分配,则必须允许参数:

确保在列表_controller.rb:

中过滤属性
def create
  @listing = Listing.create(listing_params)
  ...
end
...
private
  def listing_params
    params.require(:listing).permit(:price, :name) #name can be replaced by other parameters received via form.
  end

答案 1 :(得分:0)

我认为您错过了迁移文件中的:decimal

通过此

再次编辑迁移
add_column :listings, :price, :decimal, :precision => 8, :scale => 2