উত্তর:
রেলগুলি 2. এক্স :@controller.action_name
পাগল 3.1.X : controller.action_name
,action_name
রিয়েলস 4. এক্স :action_name
before_filter
একটি ব্লক সহ এটিতে ব্যবহার করতে চান তবে করুন before_filter { |controller| ... }
। stackoverflow.com/questions/2669663/…
action_name
রিয়েলগুলিতে কাজ করে 3.2.13, এবং controller.action_name
না।
একটি রেল অ্যাকশনের নির্দিষ্ট ক্ষেত্রে (বর্তমান পদ্ধতির নাম পাওয়ার সাধারণ ক্ষেত্রে বিপরীতে) আপনি ব্যবহার করতে পারেন params[:action]
বিকল্পভাবে আপনি রেল লগ ফর্ম্যাটটি কাস্টমাইজ করার দিকে নজর রাখতে পারেন যাতে ক্রিয়া / পদ্ধতির নামটি আপনার লগ বার্তায় না গিয়ে ফর্ম্যাটে অন্তর্ভুক্ত থাকে।
action_name == 'new'
(অপ্রত্যক্ষিত) এখনও আমার জন্য রেল ৩.২-তে কাজ করে
এই স্নিপেটটি রেল 3 এর জন্য কাজ করে
class ReportsController < ApplicationController
def summary
logger.debug self.class.to_s + "." + self.action_name
end
end
মুদ্রণ করবে
। । ।
রিপোর্টসকন্ট্রোলআর.সুমারী
। । ।
মাইকেজের উত্তরটি খুব সুনির্দিষ্ট এবং সহায়ক ছিল, তবে আমি যে জিনিসটি জানতে চেয়েছিলাম সেটি হল কীভাবে রেললাইনে বর্তমান পদ্ধতির নাম পাওয়া যায়।
এটি স্ব.কমেন্ট_মোথড দিয়ে সম্ভব possible
http://www.ruby-forum.com/topic/75258 এ সহজেই পাওয়া যায়
আমি ঠিক একই কাজ করেছি। আমি এটি সহায়ক কন্ট্রোলারে করেছি, আমার কোডটি হ'ল:
def get_controller_name
controller_name
end
def get_action_name
action_name
end
এই পদ্ধতিগুলি বর্তমান কনটোলার এবং ক্রিয়া নামটি ফিরিয়ে দেবে। আশা করি এটা সাহায্য করবে
controller_name
, যা একটি পদ্ধতি যা বর্তমান কন্ট্রোলারের নাম ফিরিয়ে দেয়, অন্য পদ্ধতিতে কেবল কল করে controller_name
? শুধু কল করে কেন এটি controller_name
করা হবে না?