اجرای کد روبی بعد از هر تغییر صفحه در discourse

سلام
من یک سایت با پلتفرم discourse اجرا کردم و الان میخوام یه سری کد روبی اضافه کنم به سایت که بعد از هر تغییر صفحه ای این کد اجرا بشه.کد روبی من نیازمند دسترسیه به دیتابیس و کوکی های یوزر هست.چجوری این کارو کنم و کجت کدمو بذارم.discourse یه پلتفرمه ruby on rails هست ولی من چون فقط روبی بلد هستم نمیدونم چجوری اینکارو توی rails انجام بدم

سلام، منظورتون در مورد تقير صفحه و دسترسى به ديتابيس يوزر براى من خيلى واضح نيست اگر به صورت يك سناريو توضيح بدين شايد بتونم كنم، اما براى كار با كوكى ActionDispatch شايد به كارتون بياد، اگر واضح نبود بپرسيد همينجا
http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html،
براى كار با session هم كه در اصل مكانيزم ساده ايه براى synch كردن connection و ذخيره بخشهاى كوچك ديتا بين كاربر و ريلز كه از لينك زير ميتونيد راهنمايى بگيريد
http://guides.rubyonrails.org/action_controller_overview.html#session

1 پسندیده

مثلا میخوام وقتی که یوزر از صفحه ی اصلی وارد صفحه ی دیگری شد، کد اجرا بشه و آدرس صفحه ی جدید و آی دی یوزر(که از دیتابیس میخونه)رو برای یه جای دیگه بفرسته ولی نمیدونم کدمو کجا بذارم

خب شما بايد يكمى با مفهوم RESTful كارتون رو جلو ببريد، و كدهايى كه با كاربر در تعامل هستند رو در دامنه HTTP قرار بدين يعنى در كنترلر و veiw,
هر method توى كنترلر يك اكشن هست كه اگر براش route تعيين شده باشه تبديل به endpoint ميشه و كاربر ميتونه با استفاده از verb هاى http مثل POST, GET و غيره باش در تعامل باشه
http://guides.rubyonrails.org/routing.html
http://guides.rubyonrails.org/action_controller_overview.html#session

1 پسندیده

میتونم کدم رو به صورت یه پلاگین بنویسم؟

بله چرا كه نه، با يك library هم ميشه كه تو lib قرار بگيره

1 پسندیده

میشه کسی توضیح بده اگه این کد توی routes.rb بذاریم دقیقا چه اتفاقی میفته؟

  member do
    get 'preview'
  end
end```

اگر منظور شما routes.rb باشه، بايد بگم در مثال شما resources متدى هست كه 7 مسیر (route) رو میسازه که همگی endpoint هایی هستند که ارتباط با کنترلر مورد نظر (photos controller) رو فراهم میکنند:


اگر route خاصی رو بخواید در برد (scope) مد نظرتون ایجاد کنید(/photos), متد member این امکان را به شما میده که در مثال شما میشه:


برای دیدن مسیر های موجود در پروژتون در ریلز 5 فرمان rails routes و در ریلز زیر5 rake routes در ترمینال بزنید و با دقت route ها رو برسی کنید:


در صورت امکان صفحه زیر رو با دقت تمام بخونید و هرجا نامفهوم بود بپرسید:
http://guides.rubyonrails.org/routing.html

مرسی این صرفا یکی از همون مثال هایی بود از اون لینکی که برام فرستادید.
من الان یه اکشن دارم و یک کنترلر و میخوام به ازای هر ریکویستی که میاد علاوه بر رندر شدن اون صفحه اکشن من هم اجرا بشه(اکشن من چیزی رندر نمیکنه فقط در بک اند کارایی میکنه)
این کد منه:

require 'net/http'
        require 'json'
        uri = URI("http://136.20.52.43:902/ingest?id=1122&url=%27t54646%27");
        req = Net::HTTP::Get.new(uri);
        res = Net::HTTP.start(uri.hostname, uri.port) do |http|
            http.request(req);
        end```
سوال جامع من توی سایت meta:
https://meta.discourse.org/t/routes-rb-structure/53397

دارم برسی میکنم

منظورتون از اجرا شدن اکشن چیه؟

منظورم اجرا شدن تابع داخل کنترولر هست.