Ruby on rails 如何使用RubyonRails删除单个帖子?

Ruby on rails 如何使用RubyonRails删除单个帖子?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我第一次用RubyonRails创建了一个简单的工作板,我需要弄清楚如果有人发布了一篇不合适的文章,或者由于某种原因它是不正确的,我将如何删除一篇文章。我怎么删除那篇文章呢 不确定此代码是否与此点相关,但如下所示: jobs_controller.rb- class JobsController < ApplicationController def index @jobs = Job.page(params[:page]).per(20).order(created_a

我第一次用RubyonRails创建了一个简单的工作板,我需要弄清楚如果有人发布了一篇不合适的文章,或者由于某种原因它是不正确的,我将如何删除一篇文章。我怎么删除那篇文章呢

不确定此代码是否与此点相关,但如下所示:

jobs_controller.rb-

class JobsController < ApplicationController
   def index
      @jobs = Job.page(params[:page]).per(20).order(created_at: :desc)
   end

   def new
       @job = Job.new
   end

   def show
       @job = Job.find(params[:id])
   end

   def create
      @job = Job.new(params.require(:job).permit(:human_sum, :position, :company, :salary, :companywebsite, :contract, :city, :expirydate, :jobtype, :description, :apply, :contactname, :contactemail, :contactphone, ))
      if @job.save
        redirect_to root_path
      else
        render "new"
      end
   end
end
job.rb-

class Job < ActiveRecord::Base
  validates :position, presence: true
  validates :company, presence: true
  validates :salary, presence: true
  validates :companywebsite, presence: true
  validates :contract, presence: true
  validates :city, presence: true
  validates :expirydate, presence: true
  validates :jobtype, presence: true
  validates :description, presence: true
  validates :apply, presence: true
  validates :contactname, presence: true
  validates :contactemail, presence: true
  validates :contactphone, presence: true

  attr_accessor :human_sum 
  validate :not_a_bot

  private

  def not_a_bot
    if human_sum.to_i != 2 
      errors.add(:human_sum, 'Get out, you bot!') 
    end
  end
end
index.html.erb-

      <% @jobs.each do |job| %>
        <div class="job">
            <h2><%= link_to job.position, job %></h2>
            <br><br>
            <ul class="entry_list">
                <li>Posted on: <%= job.created_at.strftime("#{job.created_at.day.ordinalize} %B %Y") %></li>
                <li>Company: <%= job.company %></li>
                <li>Salary: <%= job.salary %></li>
                <li>Contract Type: <%= job.contract %></li>
                <li>City: <%= job.city %></li>
                <li>Applications in by: <%= job.expirydate %></li>
                <li>Job Type: <%= job.jobtype %></li>
            </ul>
        </div>
    <% end %>

    <p><%= paginate @jobs %></p>

对于添加管理员用户,最简单的方法是添加一个布尔字段,即_admin,它可以设置为true和false,如@Marek Lipka所说。因为你只需要一个角色,这将是最好的方式。如果您需要复杂的角色,可以使用各种宝石,如cancan、authority、rolify。你可以检查其中任何一个。在视图中,您只需添加一个简单的if case来检查用户是否是admin,那么只有delete链接才可见。为了增加安全性,您可以在控制器中为销毁操作添加一个before_过滤器,在该过滤器中,您可以检查删除帖子的用户是否是管理员。如果没有,您可以重定向他或显示错误消息。希望这有帮助。

就像你现在做的那样@job.save在验证失败时不会实际保存记录。抱歉,我不确定是否了解您的要求?我不理解您的问题。我的问题是,一旦用户发表帖子,如果不合适或不合适,我将如何删除?为什么不在控制器中添加一个简单的删除方法,并在视图中链接到该操作