构建一个 Message 文章功能
我们在构建一个可以上线的专案的时候,主要分为五个方面的维度的产品的打造,其中包括:
- 功能打造
- 用户体系
- 部署体系
- 设计体系
- 支付体系
处在一般的开发过程中,我们使用最多的其实就是前面三个部分,设计到设计和支付体系的对接,有时候缺乏一些功能,例如设计页面的美化的过程,这是一个不断的优化的过程,什么才是真正的美,没有谁可以真正的谈清楚,所以在这个时候,我们需要大量的借鉴别人优秀的作品,不断的让自己的设计达到一个更高的维度,从而更好的完成产品的交易,针对于支付的功能体系的开发,需要使用公司的账户才可以使用微信支付,支付宝支付,这也是普通人学习的时候,难以获得一项公司的秘钥,所以一般的孩子都没有完成支付的功能的开发,针对于后期在公司的时候,也比较难完成这个功能的学习,所以在这个时候支付功能的教学一般都没有人教授,所以我们的孩子在学习编程的技能的时候,普通都不是完全的技能体系,所以在公司的入职的时候,其实就会比较的被动,所以我最近也一直在看微信支付和支付宝支付,后期我自己解决了这个问题之后,我会专门的写一个章节出来,帮助大家更好的理解互联网的本质;
前一段时间主要让大家完成了编程的基本逻辑的构建,现在这个课时,开始完成真实的产品的开发,每一个功能的结构都需要思考其实的逻辑体系,这样才可以完成功能的快速的开发。
我们在完成任何一个功能的开发的时候,其实都需要在大脑里面构架一个 RMVC 的基础的结构,就是我们打造的每一个功能的本质上来说都是这个架构下面的不断的表现;
在宏观的体系上,我们所思考的核心就是路由器如何对接,控制器如何对接,如何完成模型的数据呈现,如何完成页面的展示,只有在开发功能的时候,不断的强化这个逻辑体系,就可以相对快速的完成产品的开发;
我们在构建如何一个功能的时候,其实度需要完成的是 model 的构建,然后在这个基础上完成 controller 的构建,然后就是基于 这个构建的功能完成我们的 views 的页面的设置,从而最终完成页面的展示;
涉及到我们的 views 的页面的展现,我们需要进一步的了解关于网页的三剑客的属性,例如 div 的布局, css 的定位, JavaScript 的表现,这样你就可以快速的构建出自己想要构建的页面的输出,从而让自己快速的掌握其中的窍门;
M :首先我们构建一个 model 的 message 的原型
rails g model message title:string description:text
rake db:migrate
R :路由器的设置
resourser :messages
root :messages#index
在终端输
rake routes
可以看到我们的网页的路由的情况,这个路由主要是用来完成页面呈现和页面跳转的时候使用的;
C :控制器的使用
rails g controller messages
添加所有的代码:
before_action :find_message,only: [:show,:edit,:update,:destroy]
def index
@message = Message.all.order("created_at DESC")
end
def show
end
def new
@message = Message.new
end
def create
@message = Message.new(message_params)
if @message.save
redirect_to root_path
else
render 'new'
end
end
def edit
end
def update
if @message.update(message_params)
redirect_to messages_path
else
render 'edit'
end
end
def destroy
@message.destroy
redirect_to messages_path
end
private
def message_params
params.require(:message).permit(:title,:description)
end
def find_message
@message = Message.find(params[:id])
end
end
V :增加四个文档;
index.html.erb
new.html.erb
show.html.erb
edit.html.erb
G:为了更好的使用一些表单我们需要安装一个表达的 gem,
安装gem: https://rubygems.org/
安装:simple_form 3.5.0 https://rubygems.org/gems/simple_form
保存后,使用
bundle install
完成安装;
V :在V里面增加一个文档;
_form.html.erb
<%= simple_form_for @message do |f| %>
<%= f.input :title, label: "message title" %>
<%= f.input :description %>
<%= f.button :submit %>
<% end %>
index.html.erb
<h2 class="message-title"><%= message.title %></h2>
<%= link_to "vive message", message_path(message),class: "btn btn-cusom" %>
new.html.erb
<h1>new message</h1>
<%= render 'form' %>
show.html.erb
<h2><%= @message.title %></h2>
<p><%= @message.description %></p>
<!-- add a poster at timestamp -->
<%= link_to "back", messages_path(@message) %>
<%= link_to "edit", edit_message_path(@message) %>
<%= link_to "Delete", message_path(@message), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-default" %>
edit.html.erb
<h1>edit message</h1>
<%= render 'form' %>
添加完毕代码之后,我们就可以使用
rails s
在阅览器中打开
http://localhost:3000
看看我们现在的文章的功能是不是可以完成基本的增删改查的功能了;
案例来源: Ruby on Rails Tutorial | Building a Message Board https://www.youtube.com/watch?v=wODY11lM7wk
GitHub Repository (You can get the stylesheet here): https://github.com/RyanHemrick/Message-Board
Video Index: 0:00 Overview of the finished application 1:40 Create the MessageBoard application 3:30 Generate the Message model 6:20 Generate the Messages controller 7:40 Routing and root path 9:30 Define index action in messages_controller 11:25 Add simple_form and bootstrap-sass Gems 15:30 Add functionality to create new messages 22:05 Show all messages in the index action 24:50 Add show functionality to messages 29:10 Add edit/update and destroy functionality to messages
34:45 Add/install the devise Gem 38:25 Create navigation for the app in the layout file 44:30 Sign up a user 45:05 Add a user_id attribute to messages
53:45 Generate the Comment model 56:45 Generate the Comments controller 58:00 Create nested routes for comments 59:00 Add create action for comments 1:02:40 Create form partial for comments 1:05:10 Create comment partial file 1:08:00 Add edit/update functionality to comments 1:18:00 Add destroy functionality to comments
1:19:00 Add timestamps 1:22:25 Allow only the user who created the message or comment to be able to edit/delete
1:27:30 Add authenticate_user 1:30:00 Add CSS styles and layout the content
Thank you for watching!
肖威 2018.02.13