একটি আংশিক, রেল 3 একটি ভেরিয়েবল পাস?


140

আমার মতো লুপ রয়েছে:

<% @posts.each do |post| %>
  <% render middle %>
<% end %>

তারপরে আমার মধ্যবর্তী অংশে, আমি কীভাবে বর্তমান পোস্টটি অ্যাক্সেস করব?


হ্যালো ইলিয়ট আমি স্ট্যান্ডার্ড স্ক্যাফল্ডে এটি ব্যবহার করছি। _Show.html.erb রেন্ডার করতে index.html.erb এর ভিতরে ব্যবহার করা যেখানে আংশিক শোতে মডেল রয়েছে। প্রতিটি জিনিস ঠিকঠাক কাজ করছে তা ব্যতীত যখন আমি শো লিঙ্কটি টিপব তখন এটি বিভিন্ন আইডির পরিবর্তে একই আইডি দেখাচ্ছে।
শিক্ষার্থী

উত্তর:


237

এটা চেষ্টা কর:

<% @posts.each do |post| %>
  <%= render 'middle', :post => post %>
<% end %>

এর মতো postআপনার আংশিকর মধ্যে একটি স্থানীয় ভেরিয়েবল উপলব্ধ।


18
আপনার <% =%> <%%> ট্যাগ নয় অন্যথায় এটি রেন্ডার হবে না
রায়ান

4
মনে রাখবেন, আপনার <%= render 'middle', :post => post %>3.1.x রেলগুলির প্রয়োজন হবে
আর্কোনিক

124

এটি স্থানীয় ভেরিয়েবল হিসাবে আংশিক দিন

<%= render :partial => 'middle', :locals => { :post => post } %>

অবশ্যই, রেল সংগ্রহগুলির রেন্ডারিংয়ের জন্য একটি শর্টকাটও রয়েছে:

<%= render :partial => 'post', :collection => @posts %>

এক্ষেত্রে এটি স্থানীয় ভেরিয়েবল 'পোস্ট' সহ প্রতিটি পোস্টের জন্য আংশিক পোস্ট কল করবে

এমনকি আপনি প্রতিটি পোস্টের মধ্যে একটি স্পেসার টেম্পলেট রেন্ডার করতে পারেন:

<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>

14
স্পেসার_টেমলেট অপশনটি সম্পর্কে জানতেন না, সত্যিই দুর্দান্ত। ধন্যবাদ!
ক্লাদিও আকিয়ারেসি

11
দ্রষ্টব্য: রেল ৩ ব্যবহার করার সময় স্থানীয়দের হ্যাশের প্রয়োজন হয় না। আর্গুমেন্ট হ্যাশ আংশিক ক্ষেত্রে প্রেরণ করা হয় ments
সুপারলুমিনিয়ার

4
আমার এখনও দরকার ছিল: এটির কাজ করার জন্য স্থানীয়রা হ্যাশ .. আমি ৩.২.১২ চালাচ্ছি
এমকে

1
<%= render :partial => 'post', :collection => @posts, as: :post %>postআপনার আংশিক প্রতিটি স্বয়ংক্রিয়ভাবে লুপ হবে , যাতে আপনি postপরিবর্তনশীল হিসাবে আপনার আংশিক ব্যবহার করতে পারেন ।
আহ্নবিজক্যাড


10

<%= render middle %>সঙ্গে প্রতিস্থাপন <%= render middle, :post => post %>। তারপরে আপনার middleআংশিক ক্ষেত্রে, আপনি postচলকটি অ্যাক্সেস করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.