{"id":94877,"date":"2025-01-27T23:49:44","date_gmt":"2025-01-27T20:19:44","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/"},"modified":"2025-01-27T23:49:44","modified_gmt":"2025-01-27T20:19:44","slug":"%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/","title":{"rendered":"\u0628\u0627\u0631\u06af\u06cc\u0631\u06cc CSV \u062f\u0631 \u0631\u06cc\u0644 \u0647\u0627: \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0639\u0645\u0644\u06cc"},"content":{"rendered":"<div data-article-id=\"2244896\" id=\"article-body\">\n<p>\u067e\u062e\u0634 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af CSV \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0644 \u0634\u0645\u0627 \u0631\u0648\u0634\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0635\u0627\u062f\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645 \u0628\u0631\u062e\u0648\u0631\u062f \u0628\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0627\u0633\u062a. \u0628\u0627 \u067e\u062e\u0634 CSV \u060c \u0627\u0632 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647 \u0645\u06cc\u0632\u0627\u0646 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u060c \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0647\u0627\u06cc CSV \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0644 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0645\u062f\u0644 \u067e\u0633\u062a \u0639\u0645\u0648\u0645\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0645\u0648\u0646\u0647 \u0645\u06cc \u06af\u0630\u0631\u0627\u0646\u06cc\u0645.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/#%D9%85%D8%AF%D9%84\" >\u0645\u062f\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/#%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%DA%A9%D9%86%D9%86%D8%AF%D9%87\" >\u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_nginx\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc nginx<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/#%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\" >\u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/#%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D8%A8%D8%A7%D8%B1%DA%AF%DB%8C%D8%B1%DB%8C_CSV\" >\u0645\u0632\u0627\u06cc\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc CSV<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b1%da%af%db%8c%d8%b1%db%8c-csv-%d8%af%d8%b1-%d8%b1%db%8c%d9%84-%d9%87%d8%a7-%db%8c%da%a9-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%b9%d9%85%d9%84%db%8c\/#%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\" >\u067e\u0627\u06cc\u0627\u0646<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AF%D9%84\"><\/span>\n<p>  \u0645\u062f\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0645\u062f\u0644 \u067e\u0633\u062a \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645. \u0627\u06cc\u0646 \u0645\u062f\u0644 \u0645\u0633\u0626\u0648\u0644 \u062a\u0648\u0644\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc CSV \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u062f \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Post<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationRecord<\/span>\n  <span class=\"c1\"># Generates a CSV string in memory (for smaller datasets)<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">to_csv<\/span>\n    <span class=\"no\">CSV<\/span><span class=\"p\">.<\/span><span class=\"nf\">generate<\/span><span class=\"p\">(<\/span><span class=\"ss\">headers: <\/span><span class=\"kp\">true<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">csv<\/span><span class=\"o\">|<\/span>\n      <span class=\"n\">csv<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">csv_headers<\/span>\n      <span class=\"n\">find_each<\/span><span class=\"p\">(<\/span><span class=\"ss\">batch_size: <\/span><span class=\"mi\">1000<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"o\">|<\/span><span class=\"n\">post<\/span><span class=\"o\">|<\/span> <span class=\"n\">csv<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">csv_row<\/span><span class=\"p\">(<\/span><span class=\"n\">post<\/span><span class=\"p\">)<\/span> <span class=\"p\">}<\/span>\n    <span class=\"k\">end<\/span>\n  <span class=\"k\">end<\/span>\n\n  <span class=\"c1\"># Streams CSV data directly to an output stream (e.g., HTTP response)<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">stream_csv_to<\/span><span class=\"p\">(<\/span><span class=\"n\">output_stream<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">output_stream<\/span><span class=\"p\">.<\/span><span class=\"nf\">write<\/span> <span class=\"no\">CSV<\/span><span class=\"p\">.<\/span><span class=\"nf\">generate_line<\/span><span class=\"p\">(<\/span><span class=\"n\">csv_headers<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">find_each<\/span><span class=\"p\">(<\/span><span class=\"ss\">batch_size: <\/span><span class=\"mi\">1000<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">post<\/span><span class=\"o\">|<\/span>\n      <span class=\"n\">output_stream<\/span><span class=\"p\">.<\/span><span class=\"nf\">write<\/span> <span class=\"no\">CSV<\/span><span class=\"p\">.<\/span><span class=\"nf\">generate_line<\/span><span class=\"p\">(<\/span><span class=\"n\">csv_row<\/span><span class=\"p\">(<\/span><span class=\"n\">post<\/span><span class=\"p\">))<\/span>\n    <span class=\"k\">end<\/span>\n  <span class=\"k\">end<\/span>\n\n  <span class=\"c1\"># Defines the CSV headers<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">csv_headers<\/span>\n    <span class=\"n\">csv_attributes<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span> <span class=\"p\">{<\/span> <span class=\"o\">|<\/span><span class=\"kp\">attr<\/span><span class=\"o\">|<\/span> <span class=\"n\">human_attribute_name<\/span><span class=\"p\">(<\/span><span class=\"kp\">attr<\/span><span class=\"p\">)<\/span> <span class=\"p\">}<\/span>\n  <span class=\"k\">end<\/span>\n\n  <span class=\"c1\"># Generates a CSV row for a given post<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">csv_row<\/span><span class=\"p\">(<\/span><span class=\"n\">post<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">csv_attributes<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span> <span class=\"p\">{<\/span> <span class=\"o\">|<\/span><span class=\"kp\">attr<\/span><span class=\"o\">|<\/span> <span class=\"n\">post<\/span><span class=\"p\">.<\/span><span class=\"nf\">send<\/span><span class=\"p\">(<\/span><span class=\"kp\">attr<\/span><span class=\"p\">)<\/span> <span class=\"p\">}<\/span>\n  <span class=\"k\">end<\/span>\n\n  <span class=\"c1\"># Specifies the attributes to include in the CSV<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nc\">self<\/span><span class=\"o\">.<\/span><span class=\"nf\">csv_attributes<\/span>\n    <span class=\"sx\">%w[id title content author_name created_at updated_at]<\/span>\n  <span class=\"k\">end<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u0636\u06cc\u062d:<\/p>\n<ul>\n<li>\n<strong>to_csv<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u06cc\u06a9 \u0631\u0634\u062a\u0647 CSV \u062f\u0631 \u062d\u0627\u0641\u0638\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u0627\u0645\u0627 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u062d\u0627\u0641\u0638\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0645\u0634\u06a9\u0644 \u0633\u0627\u0632 \u0628\u0627\u0634\u062f.<\/li>\n<li>\n<strong>stream_csv_to<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc CSV \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647 \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u062e\u0631\u0648\u062c\u06cc \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u062f (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u06cc\u06a9 \u067e\u0627\u0633\u062e HTTP). \u0627\u0628\u062a\u062f\u0627 \u0647\u062f\u0631\u0647\u0627\u06cc CSV \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u062f \u060c \u0633\u067e\u0633 \u0628\u06cc\u0634 \u0627\u0632 \u0647\u0631 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631 \u062f\u0633\u062a\u0647 \u0647\u0627 \u062a\u06a9\u0631\u0627\u0631 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0647\u0631 \u0631\u062f\u06cc\u0641 \u0631\u0627 \u0628\u0647 \u062c\u0631\u06cc\u0627\u0646 \u0645\u06cc \u0646\u0648\u06cc\u0633\u062f.<\/li>\n<li>\n<strong>CSV_HEADERS<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0647\u062f\u0631 CSV \u0631\u0627 \u06a9\u0647 \u0646\u0627\u0645 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0646\u0633\u0627\u0646 \u0647\u0633\u062a\u0646\u062f \u060c \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/li>\n<li>\n<strong>CSV_ROW<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0627 \u0646\u0642\u0634\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0632 csv_attributes \u0628\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0631\u0628\u0648\u0637\u0647 \u062f\u0631 \u067e\u0633\u062a \u060c \u06cc\u06a9 \u0631\u062f\u06cc\u0641 CSV \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u067e\u0633\u062a \u0645\u0639\u06cc\u0646 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>csv_attributes<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 CSV \u06af\u0646\u062c\u0627\u0646\u062f\u0647 \u0634\u0648\u062f \u060c \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u060c \u0645\u0627 \u0634\u0627\u0645\u0644 \u0634\u0646\u0627\u0633\u0647 \u060c \u0639\u0646\u0648\u0627\u0646 \u060c \u0645\u062d\u062a\u0648\u0627 \u060c \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u060c create_at \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647_AT \u0647\u0633\u062a\u06cc\u0645.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%DA%A9%D9%86%D9%86%D8%AF%D9%87\"><\/span>\n<p>  \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644\u0631 \u060c \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u067e\u0627\u0633\u062e HTTP \u0631\u0627 \u0628\u0631 \u0639\u0647\u062f\u0647 \u062f\u0627\u0631\u062f \u060c \u0646\u06af\u0627\u0647\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">PostsController<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationController<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nf\">index<\/span>\n    <span class=\"vi\">@posts<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Post<\/span><span class=\"p\">.<\/span><span class=\"nf\">all<\/span>\n\n    <span class=\"n\">respond_to<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"nb\">format<\/span><span class=\"o\">|<\/span>\n      <span class=\"nb\">format<\/span><span class=\"p\">.<\/span><span class=\"nf\">html<\/span> <span class=\"k\">do<\/span>\n        <span class=\"c1\"># Render the HTML view (e.g., a list of posts)<\/span>\n        <span class=\"n\">render<\/span> <span class=\"ss\">:index<\/span>\n      <span class=\"k\">end<\/span>\n      <span class=\"nb\">format<\/span><span class=\"p\">.<\/span><span class=\"nf\">csv<\/span> <span class=\"k\">do<\/span>\n        <span class=\"n\">set_csv_headers<\/span>\n        <span class=\"n\">stream_csv<\/span>\n      <span class=\"k\">end<\/span>\n    <span class=\"k\">end<\/span>\n  <span class=\"k\">end<\/span>\n\n  <span class=\"kp\">private<\/span>\n\n  <span class=\"c1\"># Sets the necessary HTTP headers for the CSV response<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nf\">set_csv_headers<\/span>\n    <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">headers<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"Content-Type\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"text\/csv\"<\/span>\n    <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">headers<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"Content-Disposition\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"attachment; filename=posts-<\/span><span class=\"si\">#{<\/span><span class=\"no\">Date<\/span><span class=\"p\">.<\/span><span class=\"nf\">today<\/span><span class=\"si\">}<\/span><span class=\"s2\">.csv\"<\/span>\n    <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">headers<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"Cache-Control\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"no-cache\"<\/span>\n    <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">headers<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"Last-Modified\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Time<\/span><span class=\"p\">.<\/span><span class=\"nf\">now<\/span><span class=\"p\">.<\/span><span class=\"nf\">httpdate<\/span>\n  <span class=\"k\">end<\/span>\n\n  <span class=\"c1\"># Streams the CSV data to the response<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nf\">stream_csv<\/span>\n    <span class=\"no\">Post<\/span><span class=\"p\">.<\/span><span class=\"nf\">stream_csv_to<\/span><span class=\"p\">(<\/span><span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">stream<\/span><span class=\"p\">)<\/span>\n  <span class=\"k\">ensure<\/span>\n    <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">stream<\/span><span class=\"p\">.<\/span><span class=\"nf\">close<\/span>\n  <span class=\"k\">end<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<strong>\u0641\u0647\u0631\u0633\u062a<\/strong>: \u0627\u06cc\u0646 \u0639\u0645\u0644 \u0647\u0631 \u062f\u0648 \u0642\u0627\u0644\u0628 HTML \u0648 CSV \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc HTML \u060c \u0646\u0645\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u067e\u0633\u062a \u0647\u0627). \u0628\u0631\u0627\u06cc CSV \u060c \u0647\u062f\u0631\u0647\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc CSV \u0631\u0627 \u067e\u062e\u0634 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>set_csv_headers<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0647\u062f\u0631\u0647\u0627\u06cc HTTP \u0644\u0627\u0632\u0645 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e CSV \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f:<\/li>\n<li>\n<strong>\u0646\u0648\u0639 \u0645\u062d\u062a\u0648\u0627<\/strong>: \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u067e\u0627\u0633\u062e \u06cc\u06a9 \u0641\u0627\u06cc\u0644 CSV \u0627\u0633\u062a.<\/li>\n<li>\n<strong>\u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u062d\u062a\u0648\u0627<\/strong>: \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u067e\u0631\u0648\u0646\u062f\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627 \u06cc\u06a9 \u0646\u0627\u0645 \u062e\u0627\u0635 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f.<\/li>\n<li>\n<strong>\u06a9\u0646\u062a\u0631\u0644 \u062d\u0627\u0641\u0638\u0647 \u0646\u0647\u0627\u0646<\/strong>: \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u067e\u0627\u0633\u062e \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\n<strong>\u062a\u062f\u0648\u06cc\u0646 \u0634\u062f\u0647<\/strong>: \u0622\u062e\u0631\u06cc\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0632\u0645\u0627\u0646 \u0641\u0639\u0644\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>stream_csv<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u0634 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc CSV \u0631\u0627 \u0628\u0647 \u067e\u0627\u0633\u062e \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u0632 \u0631\u0648\u0634 POST \u0627\u0632 \u0631\u0648\u0634 stream_csv_to \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0632 \u067e\u0627\u0633\u062e \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062c\u0631\u06cc\u0627\u0646 \u062e\u0631\u0648\u062c\u06cc \u0639\u0628\u0648\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0644\u0648\u06a9 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062c\u0631\u06cc\u0627\u0646 \u067e\u0633 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0633\u062a\u0647 \u0634\u0648\u062f.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_nginx\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc nginx<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 \u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u0631 Nginx \u062e\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062b\u0627\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>location \/ <span class=\"o\">{<\/span>\n    proxy_pass http:\/\/puma<span class=\"p\">;<\/span>\n    proxy_http_version 1.1<span class=\"p\">;<\/span>\n    proxy_set_header Upgrade <span class=\"nv\">$http_upgrade<\/span><span class=\"p\">;<\/span>\n    proxy_set_header Connection <span class=\"s2\">\"Upgrade\"<\/span><span class=\"p\">;<\/span>\n    proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n    proxy_set_header Host <span class=\"nv\">$http_host<\/span><span class=\"p\">;<\/span>\n    proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n    proxy_set_header X-Forwarded-Proto https<span class=\"p\">;<\/span>\n    proxy_redirect off<span class=\"p\">;<\/span>\n<span class=\"o\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<strong>proxy_pass<\/strong>: \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 PUMA \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\n<strong>proxy_http_version<\/strong> 1.1: \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0627\u0632 HTTP\/1.1 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a.<\/li>\n<li>\n<strong>proxy_set_header<\/strong>: \u0647\u062f\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0634\u0648\u062f \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0622\u062f\u0631\u0633 IP \u0645\u0634\u062a\u0631\u06cc \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\n<strong>proxy_redirect \u062e\u0627\u0645\u0648\u0634<\/strong>: \u06a9\u0627\u0631\u06af\u0631\u062f\u0627\u0646\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f \u060c \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0628\u0631\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\"><\/span>\n<p>  \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0635\u0627\u062f\u0631\u0627\u062a CSV (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 \/posts.csv) \u0631\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc \u06a9\u0646\u062f \u060c \u0639\u0645\u0644\u06a9\u0631\u062f \u0634\u0627\u062e\u0635 \u062f\u0631 postscontroller \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\u0631\u0648\u0634 set_csv_headers \u0647\u062f\u0631\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e CSV \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0631\u0648\u0634 stream_csv post.stream_csv_to (\u067e\u0627\u0633\u062e. stream) \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u060c \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc CSV \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>Nginx \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0627\u062a\u0635\u0627\u0644 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0627\u062f\u0627\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0644 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D8%A8%D8%A7%D8%B1%DA%AF%DB%8C%D8%B1%DB%8C_CSV\"><\/span>\n<p>  \u0645\u0632\u0627\u06cc\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc CSV<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<strong>\u06a9\u0627\u0631\u0627\u06cc\u06cc \u062d\u0627\u0641\u0638\u0647<\/strong>: \u062c\u0631\u06cc\u0627\u0646 \u0627\u0632 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>\u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e \u0633\u0631\u06cc\u0639\u062a\u0631<\/strong>: \u0645\u0634\u062a\u0631\u06cc \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f.<\/li>\n<li>\n<strong>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc<\/strong>: \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062f\u0627\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u06cc\u0627 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0632\u06cc\u0627\u062f \u0628\u0647 \u062e\u0648\u0628\u06cc \u0645\u0642\u06cc\u0627\u0633 \u0645\u06cc \u06cc\u0627\u0628\u062f.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\"><\/span>\n<p>  \u067e\u0627\u06cc\u0627\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u067e\u062e\u0634 \u0645\u062c\u062f\u062f CSV \u062f\u0631 \u0631\u06cc\u0644 \u0647\u0627 \u06cc\u06a9 \u062a\u06a9\u0646\u06cc\u06a9 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0627\u0633\u062a. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644 \u067e\u0633\u062a \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0645\u0648\u0646\u0647 \u060c \u0645\u0627 \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0644 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645. \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0645\u062f\u0644 \u0647\u0627 \u0648 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0635\u0627\u062f\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627\u0634\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u06cc \u0647\u0645\u0647 \u06a9\u0627\u0631\u0647 \u0628\u0631\u0627\u06cc \u0627\u0628\u0632\u0627\u0631 \u062a\u0648\u0633\u0639\u0647 \u0631\u06cc\u0644 \u0647\u0627\u06cc \u0634\u0645\u0627 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u067e\u062e\u0634 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af CSV \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0644 \u0634\u0645\u0627 \u0631\u0648\u0634\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0635\u0627\u062f\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0647\u0627 \u060c \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645 \u0628\u0631\u062e\u0648\u0631\u062f \u0628\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af \u0627\u0633\u062a. \u0628\u0627 \u067e\u062e\u0634 CSV \u060c \u0627\u0632 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0644 \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0647 \u062d\u0627\u0641\u0638\u0647 \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647 \u0645\u06cc\u0632\u0627\u0646 \u0642\u0627\u0628\u0644 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":94878,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Firzq1rptzim1wpcdhihl.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-94877","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/94877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=94877"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/94877\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/94878"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=94877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=94877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=94877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}