赵龙 全栈之路

Rails Guides 健壮参数

| Comments

传统的参数传送方式

app/controllers/notices_controller.rb
def create
    @notice = Notice.new(
      :title => params[:notice][:title], 
      :text => params[:notice][:text]
      )
    @notice.save

    redirect_to notices_path
  end 

代码 :text => params[:notice][:text] 中,:textsymbol 符号(简单解释:不可更改字符串)代表数据库中对应的 text 字段;params[:notice][:text] 表示从 View 层发送过来的参数(params), 第一个[]中的[:notice]代表数据库中表名为 notice 的数据表,第二个[]中的[:notice]代表该表的text字段。=> 符号表示符号左边的数据库字段接受右边从 View 层发送过来的参数。

健壮参数

  def create
    @article = Article.new(article_params) #使用健壮参数
    @article.save
    
    redirect_to @article
  end

  private
  
  # 设定健壮参数
  def article_params
    params.require(:article).permit(:title, :text)
  end

健壮参数中 params.require(:article).permit(:title, :text)require(:article) 对应数据库中数据表的名称 permit(:title, :text)对应该数据表的title 与 text两个字段
健壮参数不仅大大的简化了代码,同时也提高了网站的安全性

Comments

comments powered by Disqus