将变量从控制器传递到局部视图 rails
passing variable from controller to partial view rails
我无法将变量值从控制器传递给部分。我有来自控制器的@skillSetData 技能集数据库中的所有数据:SkillSetsController
def skillsetdata
@skillSetData = SkillSet.all
end
下面的代码 skill_set/skillsetdata。html.erb 显示所有数据。
<% @skillSetData.each do |single_skill| %>
<option value="<%= single_skill.skillname %>"><%=single_skill.skillname %></option>
<% end %>
但是如果 skillsetdata.html.erb 是部分变量,我无法传递变量,即:_skillsetdata.html.erb。我写的_skillsetdata的代码是:
<% skills_set_data.each do |single_skill| %>
<option value="<%= single_skill.skillname %>">
<%=single_skill.skillname %>
</option>
<% end %>
我想将其设为部分,因为它具有必须在其他各种页面上呈现的下拉列表。我想使用的页面之一是:static_pages/home.html.erb,它来自不同的控制器,即:staticPages。我在帮助后尝试过的代码是:
<%= render partial: 'skill_sets/skillsetdata', locals: { skills_set_data:@skillSetData } %>
但我收到如下错误:
nil:NilClass 的未定义方法“each”
在 skill_sets/_skillsetdata.html.erb
在尝试加载主页时。html.erb。我无法通过部分页面在不同页面之间传递数据。
任何有关示例代码的帮助都会有所帮助。
要将实例变量传递给部分变量,您可以使用 locals
:
# view from
<%= render partial: 'skillsetdata', locals: { skills_set_data: @skillSetData } %>
在本地您收到该实例变量的值,现在是本地变量:
# partial
<% skills_set_data.each do |single_skill| %>
<option value="<%= single_skill.skillname %>">
<%=single_skill.skillname %>
</option>
<% end %>
我猜你的问题在这里:skill_sets/skillsetdata
<%= render partial: 'skill_sets/skillsetdata', locals: { skills_set_data:@skillSetData } %>
如您所写:
The code below on skill_set/skillsetdata.html.erb display all the data.
正确的名字是:skill_set/skillsetdata
这是正确的名字:
<%= render partial: 'skill_set/skillsetdata', locals: { skills_set_data:@skillSetData } %>
我无法将变量值从控制器传递给部分。我有来自控制器的@skillSetData 技能集数据库中的所有数据:SkillSetsController
def skillsetdata
@skillSetData = SkillSet.all
end
下面的代码 skill_set/skillsetdata。html.erb 显示所有数据。
<% @skillSetData.each do |single_skill| %>
<option value="<%= single_skill.skillname %>"><%=single_skill.skillname %></option>
<% end %>
但是如果 skillsetdata.html.erb 是部分变量,我无法传递变量,即:_skillsetdata.html.erb。我写的_skillsetdata的代码是:
<% skills_set_data.each do |single_skill| %>
<option value="<%= single_skill.skillname %>">
<%=single_skill.skillname %>
</option>
<% end %>
我想将其设为部分,因为它具有必须在其他各种页面上呈现的下拉列表。我想使用的页面之一是:static_pages/home.html.erb,它来自不同的控制器,即:staticPages。我在帮助后尝试过的代码是:
<%= render partial: 'skill_sets/skillsetdata', locals: { skills_set_data:@skillSetData } %>
但我收到如下错误: nil:NilClass 的未定义方法“each” 在 skill_sets/_skillsetdata.html.erb 在尝试加载主页时。html.erb。我无法通过部分页面在不同页面之间传递数据。
任何有关示例代码的帮助都会有所帮助。
要将实例变量传递给部分变量,您可以使用 locals
:
# view from
<%= render partial: 'skillsetdata', locals: { skills_set_data: @skillSetData } %>
在本地您收到该实例变量的值,现在是本地变量:
# partial
<% skills_set_data.each do |single_skill| %>
<option value="<%= single_skill.skillname %>">
<%=single_skill.skillname %>
</option>
<% end %>
我猜你的问题在这里:skill_sets/skillsetdata
<%= render partial: 'skill_sets/skillsetdata', locals: { skills_set_data:@skillSetData } %>
如您所写:
The code below on skill_set/skillsetdata.html.erb display all the data.
正确的名字是:skill_set/skillsetdata
这是正确的名字:
<%= render partial: 'skill_set/skillsetdata', locals: { skills_set_data:@skillSetData } %>