0

我最近切换到 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.) 在展示页面上

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

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

有什么建议么 ?

4

2 回答 2

1

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

确保在 Listings_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
于 2013-07-29T06:30:28.207 回答
0

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

通过这个再次编辑迁移

add_column :listings, :price, :decimal, :precision => 8, :scale => 2
于 2013-07-29T06:21:23.647 回答