我已经得到它,以便客户页面上的节目视图链接到他们放置的所有订单.当他们点击"显示"时,它会将他们带到该订单的展示视图.但是,如果他们要更改网址中订单的ID,他们就可以看到其他人的订单.请有人帮忙或建议我可以使用它的方式,以便如果有人试图查看他们被指示的订单以外的订单,他们将被重定向到他们的客户页面?我可以使用以下方法使重定向位正常工作:
redirect_to customers_path(session[:customer_id])
Run Code Online (Sandbox Code Playgroud)
但是我如何获得应用程序以确保客户只能查看该订单?我似乎无法使用那种逻辑,我检查订单ID是否等于url中的订单ID,因为这总是证明是真的!
很简单的问题,但似乎无法解决它!我正在创建一个出生日期表格,以确保用户只有在18岁以上才能注册.我有一个date_select,并且可以设置开始年份,但如何设置结束年份以便它是18年前的?我也将在模型中使用验证器,但不希望有人能够首先输入错误的信息.
我看了一遍,但只能找到有关如何使用time.ago和验证器的信息,我已经对它进行了分类,而不是表单本身.
或者,可能更好 - 有没有办法让前两个项目(日和月)有一个date_select下拉列表,还有一年的文本框?这些方面的东西:
<%= f.date_select :date_of_birth, :order => [:day, :month] %><%= f.text_field :date_of_birth.year, :length => 4 %>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
<%= f.label :date_of_birth %><br />
<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => %>
Run Code Online (Sandbox Code Playgroud)
谢谢!!
我正在使用Rails 4.0和Devise 3.0.0.rc.
我安装了Devise的默认设置 - 即使用您的电子邮件地址注册/使用.但是,我希望用户能够使用用户名而不是他们的电子邮件地址进行注册.我根据要更改的参数来跟踪railscast,以及我可以在这里找到的任何建议,我可能需要为Rails 4更改.但是,每当我尝试创建新用户时,我都会收到错误'电子邮件不能为空白'.有没有人知道造成这种情况的原因,以及我如何解决这个问题?谢谢!!
码:
应用控制器:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :password, :remember_me) }
end
end
Run Code Online (Sandbox Code Playgroud)
登录(注册表单几乎相同):
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :username %><br />
<%= f.text_field :username, :autofocus => true …Run Code Online (Sandbox Code Playgroud) 当用户从下拉列表中选择一个选项时,我试图让某个字段显示在表单中 - 即如果他们从下拉列表中选择"其他",则会在下拉列表下方显示"请指定"字段.我似乎无法让它工作 - "请指定"字段始终显示.我哪里错了?谢谢!
<script>
$(function(){
$("#pref-select").change(function(){
if ($("#pref-select").val()=="Other"){
$("#other-pref").show();
} else {
$("#other-pref").hide();
}
})
})
</script>
<div class="field">
<%= f.label :pref %><br />
<%= f.select :pref, ["", "1", "2", "Other"], {:id => "pref-select"} %>
</div>
<div class="field" id="other-pref">
<%= f.label :other_preference %><br />
<%= f.text_area :other_pref %>
</div>
Run Code Online (Sandbox Code Playgroud)