用本地变量替换实例变量

时间:2013-09-30 05:31:08

标签: javascript html ruby-on-rails ruby ruby-on-rails-3

^ [[1; 31m。/app/views/sources/_form.html.erb:136 - 用局部变量替换实例变量^ [[0m ^ [[1; 31m./app/views/sources/_form.html.erb:138 - 用本地变量替换实例变量^ [[0m

这究竟是什么意思?什么是摆脱这种警告的程序?

<div id="book-container">
<label class="control-label" style="width: auto; font-weight:bold;">"selected books<span class="
red-star"> *</span></label>
<div "book-container">
<% if @chapter.nil? %>
<%= select_tag('book_ids',
options_for_select(@books.collect { |s| [s.name, s.id, {title: s.name}] }, params[:book_ids]),
{multiple: true, prompt: "hello:", style: "width: auto;",
data: {'multiselect-opts' => {height: '400px'}}}) %>
<% else %>
<% selected_books = @chapter.get_selected_books %>
<%= select_tag('book_ids',
options_for_select(@books.collect { |s| [s.name, s.id, {title: s.name}] }, selected_books),
{multiple: true, prompt: "Hello", style: "width: auto;",
data: {'multiselect-opts' => {height: '400px'}}}) %>
<% end %>

1 个答案:

答案 0 :(得分:4)

如果您尝试在部分代码中使用此代码,请尝试将@placements@sites和其他实例变量作为本地传递。

因此,当您渲染部分内容时,请执行以下操作:

<%= render :partial => "form", :locals => { :placement => @placement, :sites => @sites } %>

然后,不要使用@placement,而是在部分中使用placement,依此类推。 目的是使部分更可重复使用。 希望这会有所帮助!!