Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在ruby on rails的视图中显示特定用户的事件_Ruby On Rails_Ruby On Rails 3_Devise_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在ruby on rails的视图中显示特定用户的事件

Ruby on rails 在ruby on rails的视图中显示特定用户的事件,ruby-on-rails,ruby-on-rails-3,devise,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Devise,Ruby On Rails 4,我正在使用Rails 4和Desive。我试图在“myevents”视图中使用if语句来仅显示属于当前登录用户的事件,任何人都可以帮助,当前它返回所有事件并忽略if语句。我还尝试将if语句放入控制器中,但没有成功,下面是我的代码: ///////////Myevents视图 <h1>My Events</h1> <table> <tr> <th></th> <th><%= sortabl

我正在使用Rails 4和Desive。我试图在“myevents”视图中使用if语句来仅显示属于当前登录用户的事件,任何人都可以帮助,当前它返回所有事件并忽略if语句。我还尝试将if语句放入控制器中,但没有成功,下面是我的代码:

///////////Myevents视图

<h1>My Events</h1>
<table>
  <tr>
    <th></th>
    <th><%= sortable "name" %></th>
    <th><%= sortable "date" %></th>
    <th><%= sortable "time" %></th>
    <th><%= sortable "description" %></th>
    <th><%= sortable "dresscode" %></th>
    <th><%= sortable "price" %></th>
  </tr>

  <% @events.each do |event| %>
    <% if event.user_id == current_user %>
    <tr>
      <td><%= image_tag event.avatar.url %></td>
      <td><%= event.name %></td>
      <td><%= event.date %></td>
      <td><%= event.time %></td>
      <td><%= event.description %></td>
      <td><%= event.dresscode %></td>
      <td><%= event.price %></td>
      <td><%= link_to "Show", event_path(event) %></td>
      <td><%= link_to "Edit", edit_event_path(event) %></td>
      <td><%= link_to 'Destroy', event_path(event),
                    method: :delete, data: { confirm: 'Are you sure?' } %></td>
    </tr>
    <% else %>
    <%= puts "No events to display" %>
    <% end %>
  <% end %>
</table>
////控制器动作

def myevents
   @events = Event.search(params[:search]).order(sort_column + " " + sort_direction).paginate(:per_page => 5, :page => params[:page])
  end

获取
事件的方式是错误的。您的模型应设置为:

class User
  has_many :events
end

class Event
  belongs_to :user
end
控制器 看法

#@events.each do| event|
#无事件

这是if语句的条件吗?
class User
  has_many :events
end

class Event
  belongs_to :user
end
def myevents
  @events = current_user.events.search(params[:search).order(sort_column + " " + sort_direction).paginate(:per_page => 5, :page => params[:page])
end
<% if @events.any? %>
  # @events.each do |event|
<% else %>
  # no events
<% end %>