انتقال مقادیر بین صفحات در الکسیر

elixir
phoenix

#1

سلام
طبق پست قبلی مشکل csp حل شد البته من یک رشته ثابت در nonce قرار داده بودم برای هر تگ ولی حالت درستش این هست که این رشته در هر بار رفرش شدن صفحه به صورت تصادفی تولید و به همه تگ های script و style اون صفحه اختصاص داده بشه .

من برای تولید این رشته یک تابع به صورت زیر در پروژه الکسیر ایجاد کردم

def random_string_for_nonce(length) do
      :crypto.strong_rand_bytes(length) |> Base.url_encode64 |> binary_part(0, length)
end

و اون رو داخل فایل app.html.eex به این صورت فراخونی کردم

<%  cspnonce =TrangellHtmlSite.random_string_for_nonce(100) %>

برای استفاده از متغیر داخل همین صفحه مشکلی ندارم ولی میخوام در صفحات دیگه از همین متغیر استفاده بکنم
و توی همین فایل app.html.eex یک خط هم به این صورت تعریف شده

 <%= render @view_module, @view_template, assigns %>

که صفحات دیگه رو بر اساس نوع روتر لود میکنه . میخواستم ببینم چطور میشه متغیر خودم رو به render بدم که در صفحات دیگه لود بکنم راه بهتری هم براش هست یا نه


#2

میتونی تو ارگمنت دوم render یک hash بدی که چند داده رو داشته باشه

https://www.brainarama.com/thought/dbfe9020-b431-11e7-ae34-3f710d564c96/Elixir-Phoenix-framework-pass-data-from-controller-action-to-layout-view-app-html-eex


#3

آرگومنت دوم تمپلیت هر کنترلر هست . اگر متغیر خودم رو در مپ assigns مرج کنم و بعد در هر template بخونم آیا مشکل داره ؟ چون پارامتر سوم رو نمیتونم چند تا بدم


#4

میتونید امتحان کنید من خیلی وقته با template ها کار نکردم