在Rails中设置渲染表单的默认值

时间:2012-05-20 03:45:48

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有一个rails应用程序设置了为'产品'设置的脚手架。我还创建了一个新的foo控制器和视图。我的foo索引中的产品型号有部分表格。在我的foo控制器中,我定义了各种变量。如何将这些变量作为默认值传递到正在呈现为我的foo索引的部分的产品表单中?

我的表格:

<%= form_for @product, :html => { :multipart => true } do |f| %>
  <% if @product.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@product.errors.count, "error") %> prohibited this product from being saved:</h2>

      <ul>
      <% @product.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">Feed ID
    <%= params[:feed_id] %>
    <%= hidden_field_tag('passed_feed_id', params[:feed_id]) %>
  </div>

  <div class="field">
    <%= f.label :uploadedimage %><br>
    <%= f.file_field :uploadedimage %>
  </div>

  <div class="field">
    <%= f.label :title %>
    <%= f.text_field :title %>
  </div>

  <div class="field">
    <%= f.label :category_names %>
    <%= f.text_field :category_names, :size => 65 %>
    <%= f.label :categories %>
    <%= f.text_field :categories %>
  </div>

  <div class="field">
    <span><%= f.check_box :published %> <%= f.label :published %> </span>
  </div> 

  <div class="field">
    <%= f.label :url %>
    <%= f.text_field :url %>

    <%= f.label :canonical_url %>
    <%= f.text_field :canonical_url %>

    <%= f.label :image_url %>
    <%= f.text_field :image_url %>
  </div>
  <div class="field">
    <%= f.label :long_descr %><br />
    <%= f.text_area :long_descr %>
  </div>
    <div class="field">
    <%= f.label :mp_seller_name %><br />
    <%= f.text_field :mp_seller_name %>
  </div>
  <div class="field">
    <%= f.label :curr_item_price %>
    <%= f.text_field :curr_item_price %>
    <%= f.label :base_item_price %>
    <%= f.text_field :base_item_price %>
  </div>
  <div class="field">
    <%= f.label :id_str %><br />
    <%= f.text_field :id_str %>
  </div>
  <div class="field">
    <%= f.label :id %><br />
    <%= f.text_field :id %>
  </div>
 </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

2 个答案:

答案 0 :(得分:0)

从索引视图中,您需要使用控制器实例变量的哈希渲染为部分。请参阅rails guide了解如何操作。

答案 1 :(得分:0)

我不确定你在问什么,但你可能想尝试将局部变量传递给你的部分。

例如

<%= render :partial => "foo/form", :locals => { :a => 3, :b => "bar", :c => @baz } %>

然后,在您的部分内,您可以使用abc

检查rails guide http://guides.rubyonrails.org/layouts_and_rendering.html

的传递局部变量部分