درخواست مشاوره در گرفتن اطلاعات

درود خدمت شما من وقتی فرمی درست می کنم به صورت زیر کد می گیرم

در کنترلر :

def create
# Instantiate a new object using form parameters
@user = User.new(user_params)
# Save the object
if @user.save
  # If save succeeds, redirect to the index action
  flash[:notice] = "کاربر با موفقیت درست گردید"
  redirect_to(:action => 'index')
else
  # If save fails, redisplay the form so user can fix problems
  #@user_count = User.count + 1
  flash[:notice] = "اشتباهی در وارد کردن اطلاعات پیش آماده هست"
  render('new')
end
  end

من در آخر همین فایل user_params رو به عنوان یک def یا فانکشن معرفی کردم به صورت زیر

   def user_params

params.require(:user).permit(:first_name, :last_name, :username, :id_uni, :type_uni, :age, :mobile, :gender, :g_id, :Email, :password_digest, :uni_name, :start_time_uni, :end_time_uni, :maghta_tahsili)

end

end

اگر متوجه شدید من در params.require(:user).permit تمام فیلد های بانک اطلاعاتیمو دارم می گیرم

تا اینجا مشکلی نیست !!

حالا اومد اندازه ۲۰۰ تا فیلد مورد نیاز داریم از کاربر بگیریم باید دقیقا تمام فیلد های دیتابیس رو مثل کد بالا بنویسیم ؟ اینجوری خیلی زمان می بره و در فیلد های داینامیک در آینده فکر می کنم کمی سخت باشه
آیا راه دیگری وجود دارد؟

khob khodet dari javabe khodeto midi dg , mage che websiti mikhay benivisi ke 200 field begireh in baraye amniyate bishtareh
age mikhay inaro nanevisi bayad rails haye ghadimi ro install koni

درود اگر فارسی بنویسید که خیلی ممنون می شم

سایتی که دارم می زنم امکان داره فیلد هایش به ۵۰۰ عدد در هر مدل برسه و هر فیلدی هم یکتاست بخاطر همین خیلی سخت می شه که هر دفعه همین کارو بکنم به همین دلیل دنبال راهی هستم در امنیت کامل تمام فیلد هارو کپچر کنه

اگر راهی باشه که خیلی خوبه امید وارم دوستان راهنمایی کنند

اگر واقعا ۵۰۰ تا فیلد هست بهتر ساختار رو عوض کنی و یک جا نگیری ولی اگه اصرار به این کار داری می تونی اسم فیلد ها رو به صورت دینامیک به permit پاس بدی یا اگه همه فیل ها رو می خوای از permit! استفاده کنی که پیشنهاد نمی شه

درود بر شما می شه یک نمونه داینامیک مثال بزنید به چه صورت هست ؟

یه همچین چیزی، اما این خیلی سادست.

def required_params
  model = Post 
  params.require(:posts).permit(*Post.columns_hash.keys)
end
2 پسندیده