У меня есть конфликт маршрутизации. После перемещения всех сообщений в моем блоге с /posts/:id
на /:id
(что здорово) у меня появилась проблема, когда мои статические страницы не содержат идентификатора, поэтому они не отображаются. Я не хочу обрабатывать их через мой контроллер сообщений.
Вот что у меня в данный момент есть в моем файле rout.rb:
resources :posts, only: [:index, :create, :edit, :new, :destroy]
get '/:id' => 'posts#show', :as => 'custom_url'
match '/posts/:id' => redirect('/%{id}', status: 301)
Но тогда они теперь не работают...
match '/privacy' => 'static#privacy'
match '/terms' => 'static#terms'
У меня есть контроллер с именем static_controller.rb, который я могу использовать в случае необходимости. Как я могу перепрыгнуть через /:id
матч.
ОБНОВЛЕНИЕ:
Также возникают проблемы, когда мое обновление по умолчанию не обновляет мой контент.
def update
@post = Post.find(params[:id])
respond_to do |format|
if @post.update_attributes(params[:post])
format.html { redirect_to @post, :notice => 'Post was successfully updated.' }
format.json { head :no_content }
else
format.html { render :action => "edit" }
format.json { render :json => @post.errors, :status => :unprocessable_entity }
end
end
end