我继续这个问题
但是有人告诉我,如果我愿意,我可以在渲染中传递参数,但我不知道该怎么做,我的意思是在这里
<%= render :file => "userscuentas/index" %>
所以也许我可以将@userscuentas 作为参数传递我真的需要你的帮助
谢谢
我继续这个问题
但是有人告诉我,如果我愿意,我可以在渲染中传递参数,但我不知道该怎么做,我的意思是在这里
<%= render :file => "userscuentas/index" %>
所以也许我可以将@userscuentas 作为参数传递我真的需要你的帮助
谢谢
假设试图呈现的文件是部分文件,试试这个:
<%= render 'userscuentas/index', :userscuentas => @userscuentas %>
然后,您可以使用部分访问变量usercuentas
编辑
对于部分,请执行以下操作以防止出现 nil 错误:
<% if !userscuentas.nil? %>
#Do whatever you have to do here
<% end %>
从您的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