从另一个索引脚手架渲染

时间:2013-09-13 19:05:06

标签: ruby-on-rails

我继续这个问题

Another Post

但有人告诉我,如果我想我可以在渲染中传递参数,但我不知道该怎么做,我的意思是

<%= render :file => "userscuentas/index" %>

也许我可以将@userscuentas作为参数传递 我真的需要你的帮助

由于

2 个答案:

答案 0 :(得分:0)

假设尝试渲染的文件是部分文件,请尝试:

<%= render 'userscuentas/index', :userscuentas => @userscuentas %>

然后,您可以使用usercuentas

访问部分中的变量

修改

对于partial,请执行以下操作以防止nil错误:

<% if !userscuentas.nil? %>

   #Do whatever you have to do here

<% end %> 

答案 1 :(得分:0)

来自http://pastebin.com/PuX5JheJ

将app / views / userscuentas / index.html.erb更改为

<%= render "list", :userscuentas => @userscuentas %>

然后使用此代码创建一个名为app / views / userscuentas / _list.html.erb的新文件

<% userscuentas.each do |userscuenta| %>
      <tr>
        <td><%= link_to userscuenta.id, userscuenta_path(userscuenta) %></td>
        <td><%= userscuenta.nombre %></td>
        <td><%= userscuenta.nro_cuenta %></td>
        <td><%= userscuenta.tipo_cuenta %></td>
        <td><%= userscuenta.user_id %></td>
        <td><%=l userscuenta.created_at %></td>
        <td>
          <%= link_to t('.edit', :default => t("helpers.links.edit")),
                      edit_userscuenta_path(userscuenta), :class => 'btn btn-mini' %>
          <%= link_to t('.destroy', :default => t("helpers.links.destroy")),
                      userscuenta_path(userscuenta),
                      :method => :delete,
                      :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
                      :class => 'btn btn-mini btn-danger' %>
        </td>
      </tr>
    <% end %>

您还必须在app / views / users / layout_users.html.erb中更改调用方式 还要确保(在更改之后)在引用此视图的控制器操作中设置了@userscuentas变量。

 <li><a href="#tab4" data-toggle="tab">Cuentas</a></li>

       <div class="tab-pane" id="tab4">
           <p>
               <%= render "userscuentas/list", :userscuentas => @userscuentas %>
           </p>
       </div>

我对应用程序的结构不确定,但是你的new.html.erb也不会像你调用那个部分一样工作,因为你必须在它正确呈现之前设置@usersuentas变量。你也在那里叫一个观点,而不是一个部分。

应用程序/视图/用户/ new.html.erb

<%= render "userscuentas/list", :userscuentas => @userscuentas %>

这假设您必须在控制器端填充@userscuentas变量,所以

userscuentas_controller.rb

 def new
    @userscuentas = @user.userscuentas.all
    @userscuenta = Userscuenta.new
 end