某些text_field值无法在我的表单中设置

时间:2013-05-08 13:41:42

标签: ruby-on-rails forms

环境:Rails 3.2项目

在表格视图中,我有:

 <%= f.text_field :number_of_units, :value => 2 %>

 <%= f.text_field :price_in_cents, :value => 20 %>

呈现的页面正确显示我的单位数量值= 2,但我的美分价格显示为“NaN”或空白

我尝试了很多东西,看起来我不能为:price_in_cent或:该形式的货币设置值。其他领域工作正常。

这里是整个表格:

<%= form_for(@pricing, :html => {:class => "form-inline"}) do |f| %>
<fieldset>
    <legend><strong><%= @pricing.service.title %></strong> <%= I18n.t('pricing.title') %></legend>
    <%= render :partial => 'layouts/error_explanation', :locals => {:object => @pricing} %>

    <%= debug @pricing %>


      <%= f.text_field :service_id %><br/>

      <%= f.text_field :currency, :value => Money::Currency.table[:nok][:iso_code] %>

      <%= f.text_field :pricing_unit_id %>

      <%= f.text_field :number_of_units, :value => 2 %>

      <%= f.text_field :price_in_cents, :value => 200 %>


      <%= f.submit I18n.t('pricing.buttons.accept'), class: 'btn btn-success pull-right' %>


</fieldset>
<% end %>

这也发生在我的货币领域。所有其他字段都已正确分配。

如果我点击了保存按钮,我肯定会获得货币和price_in_cents的空值。

我尝试在我的模型中为所有字段添加attr_accessible,但没有帮助。

出现这种情况的原因是什么?

生成的HTML似乎正确且值正确只有price_in_cents,而且屏幕上的货币为空(?):

<form accept-charset="UTF-8" action="/pricings" class="form-inline" id="new_pricing" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="ljVdzc4UNYi/RKIUqmKNd7e/PNc89BcM8F7ZhX9ViJc="></div>
<fieldset>
    <legend><strong>Fish</strong> Prisnivå</legend>



    <pre class="debug_dump">--- !ruby/object:Pricing
attributes:
&nbsp; id: !!null 
&nbsp; creative_service_id: 46
&nbsp; price_in_cents: 150000
&nbsp; currency: NOK
&nbsp; pricing_unit_id: 4
&nbsp; number_of_units: 1
&nbsp; created_at: !!null 
&nbsp; updated_at: !!null 
</pre>


      <input id="pricing_creative_service_id" name="pricing[creative_service_id]" size="30" type="text" value="46"><br>

      <input id="pricing_currency" name="pricing[currency]" size="30" type="text" value="NOK">

      <input id="pricing_pricing_unit_id" name="pricing[pricing_unit_id]" size="30" type="text" value="4">

      <input id="pricing_number_of_units" name="pricing[number_of_units]" size="30" type="text" value="1">

      <input id="pricing_price_in_cents" name="pricing[price_in_cents]" size="30" type="text" value="150000">

      <input id="pricing_price" name="pricing[price]" type="hidden" value="NaN">

      <span style="font-size:24px;text-align:center;">Nybegynner: NOK 1500 pr.dag</span>

      <input class="btn btn-success pull-right" name="commit" type="submit" value="Jeg aksepterer prisbetingelsene">


</fieldset>
</form>

2 个答案:

答案 0 :(得分:0)

我认为您不应该为绑定到模型成员的字段赋值。

您应该在控制器的“新”操作中设置默认值,而不是在视图中设置它。

我猜你的模型对pricing_in_cents的价值是零。

答案 1 :(得分:0)

<%= f.text_field :number_of_units, :value => 2 %><br>
<%= f.text_field :price_in_cents, :value => 20 %><br>


<%= f.text_field (:number_of_units, :value => 2 )%><br>
<%= f.text_field (:price_in_cents, :value => 20) %><br>

希望这会有所帮助