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