【发布时间】:2014-03-17 19:06:34
【问题描述】:
所以,我有一个允许用户创建和查找新事件的应用程序。我想美化 URL,我使用 this rails casts episode 作为参考。
问题出在控制器部分。我的事件控制器中有非常具体的代码,我希望他的建议不会造成任何问题。这是我当前的事件#show action:
def show
@event = Event.where(id: params[:id]).first
if @event.present?
@user = current_user
# @event = Event.find(params[:id])
@owner = @event.user
@participants = @event.participants
@waiting_participants = @event.waiting_participants
else
redirect_to events_path, error: 'Event not found'
end
end
Ryan 建议我将 find 行更改为:
def show
@event = find_by_slug!(params[:id])
....the rest of my code here
end
如您所见,我发现事件略有不同:
def show
@event = Event.where(id: params[:id]).first
....the rest of my code here
end
我怎样才能在不弄乱我的代码的情况下让他的工作方式?
干杯!
更新:
def update
@event = current_user.events.find(params[:id])
if @event.update_attributes(params[:event])
@event.update_event_date
flash[:success] = "Event updated."
redirect_to @event
else
render 'edit'
end
end
【问题讨论】:
-
您可以通过使用
@vent = Event.find(params[:id])并允许异常完成其工作来大大简化您的操作。 -
谢谢!是否愿意以答案形式对此进行扩展?干杯。
标签: ruby-on-rails ruby-on-rails-4