Ruby on rails 如何为版主制作单独的表格?
假设我在edit.slim模板中有一个简单的表单。像下面这样Ruby on rails 如何为版主制作单独的表格?,ruby-on-rails,ruby-on-rails-4,simple-form,Ruby On Rails,Ruby On Rails 4,Simple Form,假设我在edit.slim模板中有一个简单的表单。像下面这样 = simple_form_for article, method: :put do |f| = f.input :title = f.input :body = f.button :submit 但如果我想让不同的角色有不同呢? 例如,我怎样才能为一个成员提供一个表单,为一个版主提供一个扩展表单 主持人应该还有一个inpur字段=f。输入:状态,as::选择如果您有用户模型,请为admin创建一个列,并将默认值设置为f
= simple_form_for article, method: :put do |f|
= f.input :title
= f.input :body
= f.button :submit
但如果我想让不同的角色有不同呢?
例如,我怎样才能为一个成员提供一个表单,为一个版主提供一个扩展表单
主持人应该还有一个inpur字段=f。输入:状态,as::选择如果您有用户模型,请为admin创建一个列,并将默认值设置为false。然后,您可以控制表单的哪些部分被显示
@user vs @user.admin
或者,您可以指定只有@user.admin可以批准图像,或者只有@user.admin可以删除主题,或者只有@user.admin可以向上/向下投票等。如果您有用户模型,请为admin创建一列并将默认值设置为false。然后,您可以控制表单的哪些部分被显示
@user vs @user.admin
或者,您可以指定只有@user.admin可以批准图像,或者只有@user.admin可以删除主题,或者只有@user.admin可以向上/向下投票等。您只需检查角色对不起Erb即可:
<% if current_user.is_moderator? %>
<%= simple_form_for ... %>
<!-- moderator form content -->
<% else %>
<%= simple_form_for ... %>
<!-- common form content -->
<% end %>
更新:
别忘了按照建议检查后端的版主权限您只需检查角色对不起Erb即可:
<% if current_user.is_moderator? %>
<%= simple_form_for ... %>
<!-- moderator form content -->
<% else %>
<%= simple_form_for ... %>
<!-- common form content -->
<% end %>
更新:
别忘了按照建议在后端检查版主权限最有效的方法是使用以下各项:
= simple_form_for article, method: :put do |f|
= f.input :title
= f.input :body
- if current_user.moderator?
= f.input :moderator_input
= f.button :submit
这需要通过适当的检查在控制器中进行备份:
#app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
def create
params = current_user.moderator? ? "moderator_params" : "user_params"
@article = Article.new eval(params)
end
private
def user_params
params.require(:article).permit(:x, :y)
end
def moderator_params
params.require(:article).permit(:x, :y, :z)
end
end
最有效的方法是使用以下各项:
= simple_form_for article, method: :put do |f|
= f.input :title
= f.input :body
- if current_user.moderator?
= f.input :moderator_input
= f.button :submit
这需要通过适当的检查在控制器中进行备份:
#app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
def create
params = current_user.moderator? ? "moderator_params" : "user_params"
@article = Article.new eval(params)
end
private
def user_params
params.require(:article).permit(:x, :y)
end
def moderator_params
params.require(:article).permit(:x, :y, :z)
end
end
除了常规表单之外,版主表单还有什么?除了常规表单之外,版主表单还有什么?但是您如何准确地控制表单中为不同角色显示的部分?使用。从安全角度来看,您应该创建实际规则,防止非版主编辑/发布这些字段。否则,例如,如果有一天在视图中出错并显示表单,现在它们可以执行您不希望它们执行的任何操作。但是,如何准确地控制表单的哪些部分显示给不同的角色?使用。从安全角度来看,您应该创建实际规则,防止非版主编辑/发布这些字段。否则,例如,如果有一天您的视图中出现错误,并且表单被显示,那么现在它们可以执行您不希望它们执行的任何操作。最后一个选项似乎适合我的情况。我来试试。最后一个选择似乎适合我的情况。我来试试这个。