Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Rails MVC 和 CRUD(11)

Rails MVC 和 CRUD(11)

作者头像
franket
发布于 2021-11-25 08:20:55
发布于 2021-11-25 08:20:55
30800
代码可运行
举报
文章被收录于专栏:技术杂记技术杂记
运行总次数:0
代码可运行

列表页面多出来两个链接,点击 【New article】

成功跳转到了添加页面,随便输入点什么,提交

自动跳转到了显示页面,点击【Back】

跳转回了所有列表页面

Tip: 之所以每做一次修改都能直接生效,是因为在开发模式下(默认),每次请求 Rails 都会自动重新加载程序,因此修改之后无需重启服务器


数据验证

我们常常有对输入进行校验的需求,以避免接受到了无效或不合规范的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@h202 blog]# vim app/models/article.rb
[root@h202 blog]# cat app/models/article.rb
class Article < ActiveRecord::Base
  validates :title, presence: true, length: { minimum: 5 }
end
[root@h202 blog]# vim app/controllers/articles_controller.rb 
[root@h202 blog]# cat app/controllers/articles_controller.rb 
class ArticlesController < ApplicationController
  def new
    @article = Article.new
  end
  def create
#    render plain: params[:article].inspect
#    @article = Article.new(params[:article])
     @article = Article.new(article_params)
     
     if @article.save
       redirect_to @article
     else
       render 'new'
     end
  end
  def show
    @article = Article.find(params[:id])
  end
  def index
    @articles = Article.all
  end
  private
    def article_params
        params.require(:article).permit(:title,:text)
    end
end
[root@h202 blog]# vim app/views/articles/new.html.erb 
[root@h202 blog]# cat app/views/articles/new.html.erb 
<h1>Test blog http://soft.dog/</h1>

<%= form_for :article, url: articles_path do |f| %>

 <% if @article.errors.any? %>
  <div id="error_explanation">
    <h2><%= pluralize(@article.errors.count, "error") %> prohibited
      this article from being saved:</h2>
    <ul>
    <% @article.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
  </div>
  <% end %>


  <p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </p>
 
  <p>
    <%= f.label :text %><br>
    <%= f.text_area :text %>
  </p>
 
  <p>
    <%= f.submit %>
  </p>
<% end %>

 
<%= link_to 'Back', articles_path %>
[root@h202 blog]#  

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Rails MVC 和 CRUD(10)
再次加载 可以成功显示了 ---- 列出所有文章 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new end def create # render plain: params[:ar
franket
2021/11/25
2050
Rails MVC 和 CRUD(14)
删除文章 在 controllers 中定义 destory 方法 然后在 index 视图中加入 Destroy 链接 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new @article
franket
2021/11/25
2360
Rails MVC 和 CRUD(9)
保存数据 修改 create 方法,对提交的数据进行保存 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new end def create # render plain: params
franket
2021/11/25
2120
Rails MVC 和 CRUD(13)
定义 update 方法,并且添加 edit 链接和 show 链接 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new @article = Article.new end def
franket
2021/11/25
1850
使用rails实现最简单的CRUD
这里定义了路由hello/index,并且使用root方法将首页修改为了hello控制器下的index方法,也就是两路由的控制器一致。
用户1515472
2019/07/24
3.4K0
Rails 构建评论功能(5)
修改视图和控制器 [root@h202 blog]# vim app/views/articles/show.html.erb [root@h202 blog]# cat app/views/articles/show.html.erb <p> <strong>Title:</strong> <%= @article.title %> </p> <p> <strong>Text:</strong> <%= @article.text %> </p> <h2>Add a commen
franket
2021/10/20
3530
Rails MVC 和 CRUD(5)
创建了一个叫 ArticlesController 的类,继承自 ApplicationController
franket
2021/11/24
3640
Rails 构建评论功能(11)
虽然这只是一个小小的demo,但不得不说,ruby on rails 的开发效率是很高效的,原因是大部分本来需要手动完成的事情,这个框架已经帮忙自动完成了,我们需要做的只剩下去填补最基本的对象定义,逻辑关系,展示方式
franket
2021/10/21
5030
Rails MVC 和 CRUD(4)
结果展示了当前的一系列 Restfull API 与 Controller#Action 的对应关系
franket
2021/11/24
4350
Rails MVC 和 CRUD(6)
不过,通过查看源码,我们可以看到 action 部分指向的是当前页面 action="/articles/new" , 而这个页面 (Restfull API) 应该是用来进行显示的,而不是进行处理的
franket
2021/11/24
2920
Rails 构建评论功能(10)
安全 对文章的修改加入基础认证 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController ###basic auth http_basic_authenticate_with name: "soft", password
franket
2021/10/20
4010
Rails MVC 和 CRUD(7)
(这里的 /articles 明明对应两个方法,GET、POST ,有点不太明白,为什么这样指定就一定成了POST请求)
franket
2021/11/24
2110
Rails MVC 和 CRUD(15)
点击 【Destroy】 后会根据我们的定义弹出提示 连续删除几次后所剩无几 目前已经通过 Rails 实现了文章的 新建、显示、列出、更新、删除 操作 ---- 命令汇总 rails server -b 0.0.0.0 rails generate controller welcome index cat app/views/welcome/index.html.erb vim config/routes.rb grep -v " #" config/routes.rb | grep -v
franket
2021/11/25
3710
Rails 构建评论功能(7)
再次访问,显示效果不变 再将评论的表单也抽出 [root@h202 blog]# vim app/views/comments/_form.html.erb [root@h202 blog]# cat app/views/comments/_form.html.erb <%= form_for([@article, @article.comments.build]) do |f| %> <p> <%= f.label :commenter %><br> <%= f.text_fiel
franket
2021/10/20
4390
Rails 构建评论功能(6)
如果程序中重复代码达到一定量级,会影响可读性和可维护性,这时我们可以将其中重复部分抽出来,单独成块
franket
2021/10/20
4840
Rails 容器与配置(3)
通过 docker inspect afdddae9b2bf 可以获得丰富的,容器镜像的细节
franket
2021/10/20
3700
Rails MVC 和 CRUD(8)
再次提交一回 ---- 创建模型 Rails 提供了一个生成器用来创建模型 [root@h202 blog]# bin/rails generate model Article title:string text:text Running via Spring preloader in process 13216 invoke active_record create db/migrate/20160422140912_create_articles.rb c
franket
2021/11/25
2970
Rails MVC 和 CRUD(3)
要在 Rails 中显示“My first test” 的静态页面,需要新建一个控制器和视图
franket
2021/11/24
7630
Rails 构建评论功能(8)
再次刷新访问,显示效果不变 ---- 删除评论 在comment视图中添加一个删除链接 然后触发Comment 模型进行删除操作 [root@h202 blog]# vim app/views/comments/_comment.html.erb [root@h202 blog]# cat app/views/comments/_comment.html.erb <p> <strong>Commenter:</strong> <%= comment.commenter %>
franket
2021/10/20
4590
Rails 构建评论功能(3)
评论在创表的过程中已经构建了与article 的关联,但是article并没与评论关联
franket
2021/10/20
8980
相关推荐
Rails MVC 和 CRUD(10)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验