我在除登陆之外的页面上使用了before_action实现了设计认证。唯一的问题是,这现在将我锁定在用户计划页面之外。我可以轻松地允许计划页面作为例外,除非计划在另一个主页上分开,当有人没有签名时显示。我已经尝试允许主页作为例外但收到控制器错误(PagesController #home中的ActiveRecord :: RecordNotFound)。我的问题是1.)我是否应该找到一种方法来允许其他方式显示并保持其分区,或者我应该重新组织代码并将它们全部分开?
我是否需要包含其他文件(路由?)
此外,如果我错误地格式化了这个问题,请随时纠正我。谢谢。
home.html.erb
<div class="row">
<% if user_signed_in? %>
<%= render 'users/home' %>
<% else %>
<%= render 'users/plans' %>
<% end %>
</div>
pages_controller.rb
class PagesController < ApplicationController
before_action :authenticate_user!, except: [:landing, :home]
def landing
end
def plans
end
def home
@contributor_plan = Plan.find(1)
@elitecontributor_plan = Plan.find(2)
@technician_plan = Plan.find(3)
@elitetechnician_plan = Plan.find(4)
@center_plan = Plan.find(5)
@elitecenter_plan = Plan.find(6)
@affair_plan = Plan.find(7)
@eliteaffair_plan = Plan.find(8)
end
end
控制器错误(当主页不在身份验证时)
答案 0 :(得分:0)
flash信息非常明显:
"RecordNotFound, Couldn't find Plan with 'id'=1.
请创建至少8个ID为1到8的计划:
8.times do |i|
Plan.create(...., id: i+1)
end