লোকেরা কেন রেল অন রেলগুলিতে দর্শনের জন্য উদাহরণ পরিবর্তনশীল ব্যবহার না করার পরামর্শ দেয়


12

আমি কেন শুনছি যে নিয়ামক এবং দর্শনগুলির মধ্যে উদাহরণ ভেরিয়েবলগুলি ভাগ করা ভাল নয়। আমি এটিকে পছন্দ করি কারণ আমি @ এর মাধ্যমে অবিলম্বে দেখতে পেলাম যে নিয়ামক থেকে কিছু আসছে। আমি এখানে নিয়ামকদের সাহায্যকারীদের ব্যবহার করার একটি দুর্দান্ত উপায় দেখতে পাচ্ছি: http://www.stephencelis.com/2008/09/06/rails-controllers-views-and-variables.html । তবে আমি সেই অংশটির জন্য ক্যানকান ব্যবহার করছি।

উত্তর:


11

ধারণাটি রেলের সর্বোত্তম অনুশীলনে স্থাপন করা হয়েছিল: স্থানীয় চলকের সাথে উদাহরণের পরিবর্তনশীলকে প্রতিস্থাপন করুন

মূলত আপনি যদি অনেকগুলি পার্টিয়াল ব্যবহার না করেন বা প্রতিটি নিয়ামক পদ্ধতির জন্য একক প্লে ভিউ পেয়ে থাকেন তবে কেবলমাত্র ভিউতে দৃষ্টান্তের ভেরিয়েবলগুলি ব্যবহার করে কোনও সমস্যা হয় না।

তবুও, আপনি যদি অনেকগুলি পার্টিয়াল ব্যবহার করেন এবং তাই আপনার কন্ট্রোলারে অনেকগুলি ইন্সট্যান্স ভেরিয়েবল ঘোষিত হয় ..., আপনি পার্টিয়ালগুলিতে স্পষ্টরূপে নিয়ামক (উদাহরণ) -কে পরিবর্তনযোগ্য পাস করার বিকল্পটি ব্যবহার করলে এটি কম বিভ্রান্তিকর হতে পারে। এইভাবে - আংশিক ভিউতে কাজ করার সময় - আপনি যে পরিবর্তনশীল / অবজেক্টের সাথে কাজ করতে চান তার একটি স্পষ্ট উল্লেখ রয়েছে যা পৃষ্ঠার তৈরিতে অন্তর্ভুক্ত থাকা 'সমস্ত' পার্টিয়ালের সাথে ভাগ করা হয়নি।

সর্বোপরি, আপনি এটি যেমন পরিচালনা করতে চান ঠিক তেমন এটি পরিচালনা করতে পারবেন, নুন আপনাকে অন্যথায় এটি করতে বলবে না। আমার ব্যক্তিগত দৃষ্টিভঙ্গিটি হ'ল, আমি আমার পার্টিয়ালগুলিতে / দৃশ্যে স্পষ্টভাবে উল্লেখ করার ধারণাটি পছন্দ করি যা অন্যান্য ভেরিয়েবলগুলির সাথে বিভ্রান্ত হতে পারে না।


5

আপনি globalভেরিয়েবল বা ভেরিয়েবলগুলি থেকে রেফারেন্স দ্বারা পাস করে উপমা পেতে পারেন এবং পার্টিয়ালটিকে ফাংশন হিসাবে ভাবেন। সুতরাং উদাহরণস্বরূপ ভেরিয়েবলটি ব্যবহার করা ভেরিয়েবলের মতো এটির মতো সমস্ত প্রসঙ্গে এবং কন এর সাথে রেফারেন্স হিসাবে কাজ করে:

# controller 
def index
  @var = 1
end

#view index.html.erb 
<%= @var %><br/>
<%= render 'foo' %><br/>
<%= @var %>

#partial _foo.html.erb
<%= @var = 2 %>

ফলাফল হবে

1
2
2

আপনি যেমন আচরণ চান তবে বেশিরভাগ ক্ষেত্রে আপনার এটির প্রয়োজন হবে না। এবং এইভাবে বাগগুলি প্রবর্তন করা আরও সহজ এবং সেগুলি ট্র্যাক করা আরও শক্ত। এজন্যই এটির সুপারিশ করা হয়, কারণ এটি ভিউ এবং পার্টিয়ালগুলিতে ব্যবহৃত ভেরিয়েবলগুলির স্কোপগুলি পৃথক করে:

#view index.html.erb 
<%= @var %><br/>
<%= render 'foo', var: @var %><br/>
<%= @var %>

#partial _foo.html.erb
<%= var = 2 %>

ফলাফল:

1
2
1

2
এটি একটি ভাল পয়েন্ট, আমি ভেরিয়েবলগুলির পরিবর্তনের বিষয়ে ভাবিনি। আমার কাছে কন্ট্রোলারের ধারণাগুলিতে "উপস্থিত" ভেরিয়েবলগুলির ধারণা ছিল তবে উদাহরণস্বরূপ ভেরিয়েবলগুলি যদি সংশোধন করা হয় তবে অবশ্যই বাগগুলি প্রবর্তন করতে পারে।
আমালা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.