我先试着回答一下楼主的问题:
gem 'jquery-rails'
bundle install
//= require jquery
和//= require jquery_ujs
更新后的内容,大概你不是用 development 模式启动的 Server? 开发模式应该是直接显示错误而不是 500 页面吧.
具体的错误内容检查一下log/*.log
吧,看看到底什么错误。
然后,你到底对黑魔法这个词有多执着。作为新手不要总是抱怨,不要总觉得:哦,为什么和我想的不一样,这是黑魔法,真受不了。 来看看你眼中的黑魔法是怎么处理 data-method 的: https://github.com/rails/jquery-rails/blob/master/vendor/assets/javascripts/jquery_ujs.js#L172-L189 只有十八行,实现方法是生成一个表单然后提交。真的简单到不能再简单。这也算黑魔法的话,那简直遍地黑魔法。
Rails 是面向专业人士设计的,使用简单不代表不需要学习背景知识和练习实践。举个例子,电脑键盘很简单吧,只需要把键按下去就行了。但是!你第一次用的时候能打多快?是不是要边看键盘边看屏幕,不停地找每个键在哪里?必须经过一段时间的练习才能熟练的盲打。而学习 Rails 这样复杂的东西,更是需要很长一段时间的学习练习。
js 可以读写 cookie 的,应该是 js 实现的
friendship 就应该简单,是朋友就有记录,不是就没有。 加好友这些应该放到 notifications 通知系统里面。
https://hackpad.com/ 这个怎么样
能不能输出 epub 版?
很奇怪为什么要把 session 设置成不过期,session 本来就是用来暂存会话数据的地方,会话结束,数据也就没用了。 如果是需要持久化的数据,要么存在服务器端数据库中,要么是客户端 cookie 中,所以,你为什么不直接操作 cookie,把用户登录令牌存进去。而且可以设置过期时间。
不知道你的代码是怎么出错了,不过我有更简单的实现方法,用 rails 的 ujs
app/views/departs/_new_modal.html.erb
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">新增</h4>
</div>
<%= form_for(@depart) do |f| %>
<div class="modal-body">
<%= f.label :name %>
<%= f.text_field :name %>
<br>
<%= f.label :note %>
<%= f.text_field :note %>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<%= f.submit "保存", class: "btn btn-default" %>
</div>
<% end %>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
app/views/departs/new.js.erb
$(".modal").modal("hide");
$("<%= j render 'new_modal' %>")
.on("hidden.bs.modal", function() { $(this).remove() })
.appendTo(document.body)
.modal("show");
app/views/departs/index.html.erb
<%= link_to "新增", new_depart_path, class: "btn btn-sm btn-primary", data: { remote: true } %>
controller 不用动,edit 照上面改改就行了
简单的话,后台就自己写吧,因为没多少功能。 复杂的话,还是自己写吧,用 gem 什么的定制太麻烦,还是自己写灵活。 总的来说就是自己写。
一般用 scaffold 生成的模板改改就能行了,在这基础上再慢慢加功能。
你应该把 visit root_path 挪进去,因为 click_link 的时候会跳到别的页面,不是首页当然找不到
#16 楼 @cassiuschen 看了这段才知道你想要什么 试试这个: http://api.rubyonrails.org/classes/ActiveRecord/Store.html
登录的时候多加一个 cookie 用来标识是否登录
cookies.permanent[:is_login] = { value: 1, secure: false }
然后把全局的 force_ssl 换成
force_ssl if: :ssl_configured?
def ssl_configured?
!Rails.env.development? && cookies[:is_login].present?
end
这样的话游客就用 http 好了,搜索引擎也属于游客,而登录会员则跳转到 https。
上面的代码没经过测试,谨慎使用
#17 楼 @everpointer 不对不对 你没找到重点
%meat
%meat{"name" => "apple-mobile-web-app-status-bar-style", "content" => "blank"}
一行行对比就能发现从这里开始不正常了
提问: 什么是 FIR? 什么是 UDID? 为什么更新版本很频繁所以用你们的产品,是因为它可以一键传到各个应用商店吗? 为什么我不想搞服务器就要使用你们的产品,是因为你们有公有云平台吗? 为什么我生命有限就要使用你们的产品,是因为它能让我更健康?
抱歉我是小白,这篇帖子我完全看不明白。
这个产品能干什么? 解决了什么问题? 面向哪些客户群体?
assets 是用来存放前端资源的 上传图片应该放在 public 目录下
沧州还有用 ruby 的公司?!
def exp_to_lv(exp, map)
map.each_with_index do |limit, level|
return level if exp < limit
end
raise 'exp not in map'
end
map = [
0, #达到1级所需经验
10, #达到2级所需经验
100, #达到3级所需经验
# ...........
]
puts "exp: 15, lv: #{exp_to_lv(15, map)}"
url_for(params.merge(sort: :name))
楼主忘了还有这样定义正则的写法:
puts %r/ s /xi
这样修改之后 你的例子是完全没问题的
def a
Array.new(6) do |i|
lambda {|x| i**x }
end
end
#!/usr/bin/env ruby
gets.to_i.tap do |n|
(1..n).each {|i| puts ((a = (1...i).collect{|x| x%10 }.to_a.join) + (i%10).to_s + a.reverse).center(n*2-1) }
end
这是通用版 好难看的一坨
猜测你要解决的问题是多个 path 指向同一个 action,并且要在 action 内针对不同的 path 做不同的处理。
通常来说 member 能拿到 id,而 collection 不能,检查params[:id]
即可。
更严谨的解决方法是
resources :post do
post :search, on: :collection, defaults: { type: :collection }
post :search, on: :member, defaults: { type: :member }
end
class ApplicationController < ActionController::Base
protect_from_forgery # 这里不用动
end
class PostsController < ApplicationController
protect_from_forgery :except => :upload # 在这里加一句
end
之前也遇到这个问题,ajax 上传导致用户登录状态丢失
Answer1:
class AdminController < ApplicationController
before_filter do
(redirect_to login_path; return) unless logged_in? # logged_in? 请自行实现
end
end
Answer2: 可以试试这个 gem: https://github.com/binarylogic/settingslogic
原理就是把数据存到了一个 yaml 文件中