2013-07-29 45 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

只是我的錯字。我編輯它。 –