感悟
- 追求做出完美的东西其实是一件不可能的事情。你觉得完美的东西其实可能就是高你N个level的作者眼中不完美的产品。所以,重点不是做出现阶段你觉得完美的东西(当然这本身也是不可能的),而是去向更好的层次攀登,品味高了,质量自然就高了。
- 看了得到上面万维钢的一篇文章《失败不是成功之母,成功是成功之母》里面讲到两个观点觉得不错。
①“我的失败不是我的成功之母,但是别人的失败则可能是我的成功之母”(要注意,这里对失败的定义指的是大失败,会给人造成较大打击的失败,如项目失败、公司倒闭等。而不是训练过程中遇到的强反馈的小错误。)给我们的启示是,我们可以去看别人的失败,去体会那些错误,然后促成自己成长。最简单的方式就是去看同学写code遇到的错误,然后试着用自己的思路去解决那个问题。
②“'好的失败',应该满足三个条件: 第一是及时。一旦不对马上就有人给你指出来。 第二是对事不对人。你错了,下次改正过来就是,没有必要上升到‘你这个人行不行’的层面。 第三是错误的代价很小” 看到这三个条件,我的第一反应就是,卧槽,这不就是code当中遇到的bug的特点么?!反馈及时、对事不对人、错误代价极小。真是“好的失败”。 - 做事要快,心态要慢。
growthhack
今天老师讲了growthhack的知识,着重在怎么用技术手段和技术思想来促进营销增长,是一个很好的概念。growthhack的核心是做好产品,增加用户购买信心,打消用户购买疑虑。基于核心思想有很多方法手段来辅助达成目的。最重要的是先对自己企业进行“监视”,知道自己的具体现实状况。在表现上最重要的则是掌握landing page的结构。具体怎么作品landing page老师下周一会教,期待自己也能一个小时写出一个landing page。
ps:growthhack更详细的知识可以参考老师的书籍和今天同学录制的视频。
技术知识
- 在建立“我的订单”时学到的两个知识:
①双层循环关系<% @order.each do |order| %> <% order.product_lists.each do |product_list| %>
<% end %>
<% end %>
这行代码的意思就是在捞出order数据的循环里在嵌套一个捞出product数据的循环。
之所以可以这么做,是因为order这个model有和product_list这个model建立联系(即order has_many :product_lists/product_list belongs_to order),所以可以在循环里嵌套。
用order.product_lists(复数)是因为表单名称是复数。
这样做的好处就是我可以在一个views里面同时捞出product_list和order的所有数据为我所用。关键点就是两个model必须建立联系。
②循环的另一种写法
index.html.erb里面有一段这样的代码:<%= render :partial => "orderlist", :collection => @orders, :as => :order %>
:collection => @orders, :as => :order 表示读取controller传来的@orders的集合,并在其中取到每个order的数据。其实就是等于循环的意思。
所以这里循环了之后,在_orderlist.html.erb就不用再套<% @orders.each do |order| %>这个循环了,否则显示的内容会重复(总之就是会错)。
二者选其一,当然,以第一种方法较为简便。- 制作支付宝支付(或微信支付)“假支付”的思路:
①添加一个is_paid的栏位,default为false。即默认状态为未支付。
②在controller里面实作一个动作(def的名称与routes里post的method名称对应),当点击支付时,is_paid赋值(“=”)为true。意思是点击按钮,则is_paid为true。
③在view里面对应设置当is_paid 的值为true时(这里要用“==”),则标签显示“已付款”,否则(即“false”时)显示“未付款”。因为默认情况是false,所以订单刚建立为点击按钮就会显示“未付款”。
④同样,在view里面设置如果is_paid的值是false(“==”),则显示付款的按钮,否则(即“true”时),不显示按钮。 view里的具体代码如下:略 <span class="pull-right"> <% if @order.is_paid == true %> <label class="label label-success">已付款</label> <% else %> <label class="label label-warning">未付款</label> <% end %> </span> 略
<% if @order.is_paid == false %>
<div class="group pull-right">
<%= link_to("支付宝支付",pay_with_alipay_order_path(@order),:method => :post,class:"btn btn-danger btn-lg ") %>
<%= link_to("微信支付",pay_with_wechat_order_path(@order), :method => :post ,class:"btn btn-danger btn-lg ") %>
</div>
<% end %>
html里面的用class="",如果是引用,比如引用bootstrap里面的按钮或者link_to里面,则要用class:""
rails c 删除全部资料的命令:XXX.delete_all 例如:Group.delete_all
小计的写法:<%= product_list.price * product_list.quantity %> rails里面可以直接用*
关于.gitignore隐藏的文件如何不显示和一个世纪大坑
如何不显示:可以在tree-view里面设置Hide VCS Ignored Files让加在.gitignore里的隐藏文件不显示
世纪大坑:tree-view里面的Hide VCS Files不勾选的话,在默认的Atom Dark Themes里面隐藏文件显示的是灰色字,而在Spacegray Themes里面却和其他公开文件的显示没有差别,是看不出来的!!一个让人欲哭无泪的坑。
- 制作支付宝支付(或微信支付)“假支付”的思路: