اذهب إلى المحتوى

السؤال

نشر

أقوم ببرمجة تطبيق على إطار العمل Rails، يقوم على :

وجود مستخدم ،جدول تقويم 'Calendar' و جدول لربط المستخدم بتقويم معين يمسى role.

عند إنشاء المستخدم لتقويم معين يسجل هذا في جدول role ويأخذ قيم تعريف كل من المستخدم والتقويم : user_id،calendar_id.

الكود التالي يقرّب إليكم الصورة أكثر :

class User < ActiveRecord::Base
  has_many :administrations
  has_many :calendars, through: :administrations
end

class Calendar < ActiveRecord::Base
  has_many :administrations
  has_many :users, through: :administrations
  has_many :posts
end

class Administration < ActiveRecord::Base
  belongs_to :user
  belongs_to :calendar
end

 

وهذا جدول في واجهة المستخدمين المرتبطين بتقويم :

<table id="manage_users">

  <tr>
    <th><span class="glyphicon glyphicon-user" aria-hidden="true"></span> NAME</th>
    <th><span class="glyphicon glyphicon-filter" aria-hidden="true"></span> ROLE</th>
    <th><span class="glyphicon glyphicon-time" aria-hidden="true"></span> JOINED</th>
    <th><span class="glyphicon glyphicon-cog" aria-hidden="true"></span> OPTIONS</th>
  </tr>

  <% @calendar.users.each do |user| %>

    <tr>
      <% if user.id == current_user.id %>
        <td>You</td>
        <td><%= user.administrations.find_by_calendar_id(@calendar.id).role %></td>
        <td><%= user.administrations.find_by_calendar_id(@calendar.id).created_at.strftime("%B %d, %Y") %>
        </td>
      <% else %>
        <td><%= user.first_name %> <%= user.last_name %></td>
        <td><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <%= user.administrations.find_by_calendar_id(@calendar.id).role %>
        </td>
        <td><%= user.administrations.find_by_calendar_id(@calendar.id).created_at.strftime("%B %d, %Y") %>
        </td>
        <% unless user.id == user.administrations.find_by_calendar_id(@calendar.id).role %>
          <td><span class="glyphicon glyphicon-tasks" aria-hidden="true"></span> Edit Role</td>
        <% end %>
      <% end %>
    </tr>

  <% end %>

</table>

ما أريد السؤال عنه الآن كيفية التغيير في تقويم معين؟ ما الطريقة المثلى لفعل ذلك، مرفوقة بنصائح؟

Recommended Posts

  • 0
نشر

أضف الوظيفة التالية إلى ملف user.rb :

def update_role(role)
  self.update_attributes(:role, role)
end

ثم في ملف المتحكم  users_controller.rb :

class UsersController << ApplicationController
  def update_role
    @user = User.find(params[:id])
    @user.update_role(params[:role)
  end
end

وملف المسار route.rb :

get "user/role/update" => "user#update_role"

أضف وسم radiobutton إلى واجهة تحديث المستخدم :

<%= form_tag (url: "user/role/update" id: user.id), remote: true do %>

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...