我有一个简单的问题,但仍然无法弄清楚。我的员工角色无法编辑或删除笔记,但他们可以查看和删除笔记。他们也可以创造它们。
我的管理员角色可以查看,创建,编辑和播放删除。我的员工部分正在运作,但我的管理员却没有。我还是新手,所以请忍受我的无知。 我的错误是" Notes#index"中的NameError;和"未定义的局部变量或方法`note'对于#<#:0x007fa7b580c0a0>"
在我的notes / index.html.erb文件中,我的代码如下:
<% if @user.role == "employee" %>
<%= link_to 'New Note', new_note_path, class: "btn btn-primary btn-lg" %>
<% @notes.each do |note| %>
<div class="row notes-row"><h1><%= note.title %></h1></div>
<div class="row notes-row"><h3>Created By: </h3><%= note.user_name %></div>
<div class="row notes-row"><h6>Posted On:</h6><%=note.created_at%></div>
<div class="row notes-row"><%= note.text_box %></div>
<br>
<p><%= link_to 'View', note %></p>
<br>
<hr>
<% end %>
<% elsif @user.role == "admin" %>
<%= link_to 'Add New Job', new_job_path, class: "btn btn-primary btn-lg" %>
<%= link_to 'Edit', edit_note_path(note) %><%= link_to 'Destroy', note, method: :delete, data: { confirm: 'Are you sure?' } %>
<br>
<p> <% @notes.each do |note| %> | </p>
<%= link_to 'View', note%>
<%end%>
<% end%>
我的索引方法是:
def index
@users = User.all
@user = current_user
@notes = Note.all
@notes = Note.paginate(:page => params[:page],:per_page => 5)
end
答案 0 :(得分:2)
从这一点出现你的错误;
<%= link_to 'Edit', edit_note_path(note) %><%= link_to 'Destroy', note, method: :delete, data: { confirm: 'Are you sure?' } %>
此时变量note
未知。
你可以这样重新考虑它;
<% if @user.role == "employee" %>
<%= link_to 'New Note', new_note_path, class: "btn btn-primary btn-lg" %>
<% end %>
<% @notes.each do |note| %>
<% if @user.role == "employee" %>
<div class="row notes-row"><h1><%= note.title %></h1></div>
<div class="row notes-row"><h3>Created By: </h3><%= note.user_name %></div>
<div class="row notes-row"><h6>Posted On:</h6><%=note.created_at%></div>
<div class="row notes-row"><%= note.text_box %></div>
<br>
<p><%= link_to 'View', note %></p>
<br>
<hr>
<% end %>
<% if @user.role == "admin" %>
<%= link_to 'Add New Job', new_job_path, class: "btn btn-primary btn-lg" %>
<%= link_to 'Edit', edit_note_path(note) %><%= link_to 'Destroy', note, method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %>
<% end %>
<br>
<% if @user.role == "admin" %>
<p> <% @notes.each do |note| %> | </p>
<%= link_to 'View', note%>
<%end%>
<% end %>
可以进一步清理代码。