在view.html.erb中:
<%= render @posts %>
在每个_post.html.erb中:
<%= render partial: 'shared/block', locals: { blockedcallsign: post.user.callsign } %>
在每个_block.html.erb中:
<%= button_to blockrelationships_path(
params: {
blocker_callsign: @user.callsign,
blocked_callsign: blockedcallsign #'baz'
},
remote: true
),
class: 'btn btn-default btn-xs' do %>
<span class="glyphicon glyphicon-ban-circle" aria-hidden="true"></span>
<% end %>
在_block.html.erb中我收到错误:undefined local variable or method 'blockedcallsign'
。当我用像'baz'这样的字符串替换blockedcallsign时,它可以工作。由于某种原因,blockedcallsign没有从_post.html.erb传递到_block.html.erb。代码有什么问题?
答案 0 :(得分:1)
最新的方式是:
<%= render 'shared/block', { blockedcallsign: post.callsign } %>
传递为哈希。
答案 1 :(得分:1)
您正在寻找的语法是
render 'shared/block', locals: {blockedcallsign: post.callsign}
中的 _posts.html.erb
然后,在_block.html.erb
中,您需要致电blockedcallsign
而不是@blockedcallsign
答案 2 :(得分:0)
代码没有错。有一个被遗忘的第二个渲染&#39;在view.html.erb导致问题。遗憾。