在我的Rails 4应用程序中,我有以下模型:
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
我主要使用Administration
联接模型为每个role
中的每个user
定义calendar
。
因此,当user
创建calendar
时,或当用户加入日历时,会在Administration
模型中使用user_id
创建新行, calendar_id
和关联的role
。
所有这些都得到了照顾。
我也知道如何删除user
或删除calendar
,由于两个模型中都添加了dependent: :destroy
选项,因此会自动删除所有相应的管理。
现在,我感兴趣的是如何在此特定日历role
视图中更新给定user
的{{1}}的{{1}}。
注意:在这种特殊情况下,calendar
edit
设置为编辑或查看器,并且可以只能更新到其他选项。
到目前为止,我已构建此表以显示user
role
users
的{{1}}列表:
belong_to
我现在正在努力的是如何实现编辑角色功能。
我是否应该插入一种&#34;内联形式&#34;有两个单选按钮 - 一个用于编辑器,另一个用于查看器 - 默认选中当前角色?
或者我应该使用带有JS警报的calendar
路线?
任何建议都将不胜感激。
答案 0 :(得分:1)
1)获取处理此问题的方法:
user.rb
def update_role(role)
self.update_attributes(:role, role)
end
2)获取控制器动作来处理这个问题:
users_controller.rb
class UsersController << ApplicationController
def update_role
@user = User.find(params[:id])
@user.update_role(params[:role)
end
end
3)获取控制器操作的路径
route.rb
get "user/role/update" => "user#update_role"
4)指出你的radio_buttons&#39;形成这个控制器动作
<%= form_tag (url: "user/role/update" id: user.id), remote: true do %>
并将role
的单选按钮放在此表单中,每个单元都有不同类型的角色。
注意 :因为您已经熟悉了大部分内容的工作原理,所以没有给出很多细节,只是关于如何处理这个问题的一些指示。
希望这会有所帮助......