如何为每个用户提供不同的索引页?
How can I provide index page differently for each user?
如何使每个用户的索引页不同?
<% if can? :edit, :destroy, :new %>
<td><%= ? %></td>
<% end %>
我正在使用 Gem 'cancancan'。
我想为每个用户提供不同的索引页面,这样只有作者才能查看帖子。
我应该如何填写“?”处的代码位置?
不确定您的确切目标是什么,但您似乎希望每个用户都有自己的索引页面,并且只有该用户可以访问它?
您可以创建关联并仅呈现来自具有
的用户的 post
if user_signed_in? && !@user.associated_model.nil?
然后简单地通过记录循环:
@user.associated_model.each do |u|
但是,如果您创建嵌套资源,它会更有条理。在这种情况下,每个用户都将拥有自己的完整 CRUD 功能。因此,一个自己的索引页面、编辑页面、新页面等。您在 routes.rb 中创建了一个嵌套资源:
resources :users do
resources :books
end
现在每个用户都会拥有一本书的增删改查功能。
在你的图书控制器中,你可以为索引显示页写下:
def index
@user = User.find(params[:user_id]
@book = @user.books
end
在您的视图文件中,您可以简单地为每个用户呈现每本书:
<% @user.books.each do |b| %>
<%= b.title %>
<% end %>
由于嵌套资源,您必须向表单添加两个模型,第一个是您的根模型,在本例中是用户,第二个变量是第二个资源,在本例中是图书。所以简单记下:
<%= form_for [@user, @book] do |f| %>
<%= f.text_field :title %>
<% end %>
这只是为了展示,当然你必须根据项目中的资源和模型调整资源和模型,图书协会过去和现在都只是为了展示。如果您还有其他问题,请告诉我!
您好!
如何使每个用户的索引页不同?
<% if can? :edit, :destroy, :new %>
<td><%= ? %></td>
<% end %>
我正在使用 Gem 'cancancan'。
我想为每个用户提供不同的索引页面,这样只有作者才能查看帖子。
我应该如何填写“?”处的代码位置?
不确定您的确切目标是什么,但您似乎希望每个用户都有自己的索引页面,并且只有该用户可以访问它?
您可以创建关联并仅呈现来自具有
的用户的 postif user_signed_in? && !@user.associated_model.nil?
然后简单地通过记录循环:
@user.associated_model.each do |u|
但是,如果您创建嵌套资源,它会更有条理。在这种情况下,每个用户都将拥有自己的完整 CRUD 功能。因此,一个自己的索引页面、编辑页面、新页面等。您在 routes.rb 中创建了一个嵌套资源:
resources :users do
resources :books
end
现在每个用户都会拥有一本书的增删改查功能。
在你的图书控制器中,你可以为索引显示页写下:
def index
@user = User.find(params[:user_id]
@book = @user.books
end
在您的视图文件中,您可以简单地为每个用户呈现每本书:
<% @user.books.each do |b| %>
<%= b.title %>
<% end %>
由于嵌套资源,您必须向表单添加两个模型,第一个是您的根模型,在本例中是用户,第二个变量是第二个资源,在本例中是图书。所以简单记下:
<%= form_for [@user, @book] do |f| %>
<%= f.text_field :title %>
<% end %>
这只是为了展示,当然你必须根据项目中的资源和模型调整资源和模型,图书协会过去和现在都只是为了展示。如果您还有其他问题,请告诉我!
您好!