2013-07-29 38 views
0

我最近转向了Rails4,而我是。不。获得。的东西。至。工作...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)在The Showpage

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

但是在我的Shopage里没有任何东西。价格不显示。它甚至不显示在数据库中。

有什么建议吗?

+0

当我尝试这个时它看起来很好。 –

+0

然后你不在Rails 4上,就像Aman回答(我忘记了),你必须在Listing Controller中过滤你的属性。 :) –

+0

我的坏,我没有切换到Rails 4 .;) –

回答

1

在Rails4再次迁移的:decimal,你必须允许参数,如果你是通过形式质量assignining:

确保属性在listing_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 
+0

我正在思考和思考这个好半小时,并完全忘记了新的属性过滤:)谢谢很多阿曼! –

0

我想你已经错过了迁移文件

编辑本

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

只是我的错字。我编辑它。 –