Ruby on rails 4 Rails 4:局部w/本地人在一个地方工作,但在另一个地方不工作…为什么?
如何修复 正确呈现作业Ruby on rails 4 Rails 4:局部w/本地人在一个地方工作,但在另一个地方不工作…为什么?,ruby-on-rails-4,Ruby On Rails 4,如何修复 正确呈现作业 <% # jobs/_job.html.erb %> <% # jobs/index.html.erb %> <% # @jobs set in jobs#index %> <%= render partial: 'jobs/job', locals: { jobs: @jobs } %> \u作业应仅呈现单个作业实例的HTML视图 使用render partial: 对于在views/object\u name/\u
<% # jobs/_job.html.erb %>
<% # jobs/index.html.erb %>
<% # @jobs set in jobs#index %>
<%= render partial: 'jobs/job', locals: { jobs: @jobs } %>
\u作业应仅呈现单个作业实例的HTML视图 使用
render partial:
对于在views/object\u name/\u partial\u name.html.erb
中定义的分部,变量名partial\u name
是特殊的,因为它被认为是视图关注的主要对象
换句话说
jobs/_job.html.erb
<% do_something_with(job)
# NOT @job nor @jobs nor jobs
# The partial name is _job.html.erb => use the variable `job`
%>
<%= render partial: 'jobs/job', collection: @jobs
# This is going to render the partial as many times as there are job in @jobs
%>
<%= @jobs.each do |job|
render 'jobs/job', locals: { job: job }
%>
OR
<%= @jobs.each do |job|
render partial: `jobs/job`, object: job
%>
OR
<%= render partial: `jobs/job`, collection: @jobs %>
OR
<%= render @jobs %>
参见解释+示例
每个分部还有一个与分部同名的局部变量(减去下划线)。可以通过:object选项将对象传递到此局部变量:
简言之,以下选项将起作用(在文档上滚动更多内容以了解第三个和第四个选项的说明)
users/show.html.erb
<% do_something_with(job)
# NOT @job nor @jobs nor jobs
# The partial name is _job.html.erb => use the variable `job`
%>
<%= render partial: 'jobs/job', collection: @jobs
# This is going to render the partial as many times as there are job in @jobs
%>
<%= @jobs.each do |job|
render 'jobs/job', locals: { job: job }
%>
OR
<%= @jobs.each do |job|
render partial: `jobs/job`, object: job
%>
OR
<%= render partial: `jobs/job`, collection: @jobs %>
OR
<%= render @jobs %>
或
或
或
\u作业应该只呈现单个作业实例的HTML视图
使用render partial:
对于在views/object\u name/\u partial\u name.html.erb
中定义的分部,变量名partial\u name
是特殊的,因为它被认为是视图关注的主要对象
换句话说
jobs/_job.html.erb
<% do_something_with(job)
# NOT @job nor @jobs nor jobs
# The partial name is _job.html.erb => use the variable `job`
%>
<%= render partial: 'jobs/job', collection: @jobs
# This is going to render the partial as many times as there are job in @jobs
%>
<%= @jobs.each do |job|
render 'jobs/job', locals: { job: job }
%>
OR
<%= @jobs.each do |job|
render partial: `jobs/job`, object: job
%>
OR
<%= render partial: `jobs/job`, collection: @jobs %>
OR
<%= render @jobs %>
参见解释+示例
每个分部还有一个与分部同名的局部变量(减去下划线)。可以通过:object选项将对象传递到此局部变量:
简言之,以下选项将起作用(在文档上滚动更多内容以了解第三个和第四个选项的说明)
users/show.html.erb
<% do_something_with(job)
# NOT @job nor @jobs nor jobs
# The partial name is _job.html.erb => use the variable `job`
%>
<%= render partial: 'jobs/job', collection: @jobs
# This is going to render the partial as many times as there are job in @jobs
%>
<%= @jobs.each do |job|
render 'jobs/job', locals: { job: job }
%>
OR
<%= @jobs.each do |job|
render partial: `jobs/job`, object: job
%>
OR
<%= render partial: `jobs/job`, collection: @jobs %>
OR
<%= render @jobs %>
或
或
或
是否有任何错误?在users@show
,@jobs
可以设置,但它是有效的作业吗?还是空白?@wesforter:valid jobs(jobs index.html.erb中的jobs呈现与预期一致,users show.html.erb中没有呈现任何内容)是否有任何错误?users@show
,@jobs
可以设置,但它是有效的作业吗?还是空白?@wesforter:valid jobs(jobs在jobs index.html.erb中按预期呈现,在users show.html.erb中没有呈现)感谢您的回复。编辑了我的代码和问题以反映您的建议,但仍然没有在users show.html.erb中看到任何内容您不应该在部分\u job.html.erb
中使用@jobs
。我将我的帖子编辑为ClarifyJob,它应该只呈现单个job实例的HTML视图。如果你需要做更复杂的事情(在我给出的链接中),你可以看看间隔模板
和集合部分布局
,你最后的评论就是答案(足够接近)。我试图使用一个partial来呈现job对象的多个实例,这显然使情况变得比需要的更混乱。编辑并接受。谢谢。很酷,很高兴我能帮上忙。我还对自己做了最后一次编辑来修复一段糟糕的代码^^“谢谢你的答复。编辑了我的代码和问题以反映您的建议,但仍然没有在users show.html.erb中看到任何内容您不应该在部分\u job.html.erb
中使用@jobs
。我将我的帖子编辑为ClarifyJob,它应该只呈现单个job实例的HTML视图。如果你需要做更复杂的事情(在我给出的链接中),你可以看看间隔模板
和集合部分布局
,你最后的评论就是答案(足够接近)。我试图使用一个partial来呈现job对象的多个实例,这显然使情况变得比需要的更混乱。编辑并接受。谢谢。很酷,很高兴我能帮上忙。我还对自己做了最后一次编辑,以修复一段错误代码^”