Мне кажется, это довольно простая проблема, но у меня были некоторые проблемы.
В одном из моих представлений я использую что-то вроде
<% if current_page?(:controller => "activities", :action => "new") %>
*Do something here*
<% end %>
и он делает что-то конкретное на новой странице формы. Достаточно просто и отлично работает.
К сожалению, я обнаружил, что когда у вас есть форма "новая активность" (предположим, обычный контроллер скаффолдинга), URL будет идти с
http://localhost:3000/activities/new
после отправки склонной к ошибкам формы на
http://localhost:3000/activities
, но все равно будет отображаться новая форма активности с соответствующими ошибками. Таким образом, в основном все работает, как предполагается, за исключением того, что мне нужно, чтобы URL был http://localhost:3000/activities/new для current_page? функция, чтобы признать, что это действительно новая страница формы.
Мне интересно, есть ли какая-то работа вокруг этой проблемы. Спасибо!
ОН, а вот код контроллера, на случай, если кто-то должен его увидеть
Код контроллера
def new
@activity = Activity.new
end
def create
@activity = Activity.new(params[:activity])
if @activity.save
flash[:notice] = "Successfully created activity."
redirect_to @activity
else
render :action => 'new'
end
end