我有路由冲突。将所有博客文章从/posts/:id移到/:id(很棒)之后,我现在遇到一个问题,我的静态页面不包含ID,因此无法呈现。我不想通过我的posts控制器处理它们。
这是我的routes.rb文件中当前包含的内容:
resources :posts, only: [:index, :create, :edit, :new, :destroy]
get '/:id' => 'posts#show', :as => 'custom_url'
match '/posts/:id' => redirect('/%{id}', status: 301)
Run Code Online (Sandbox Code Playgroud)
但是这些现在不起作用了...
match '/privacy' => 'static#privacy'
match '/terms' => 'static#terms'
Run Code Online (Sandbox Code Playgroud)
我有一个名为static_controller.rb的控制器,可以在需要时使用。我该如何跳过/:id比赛。
更新:
还遇到了我的def更新无法更新我的内容的问题。
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 => …Run Code Online (Sandbox Code Playgroud) 我有一个Rails 3应用程序,我使用了很多条件语句来改变页面的设计.为了拥有如此大量的条件,保持逻辑不在视图中的最佳做法是什么?
假设示例:
<% unless @ethos.blank? %>
<%= unless @work.nil? do %>
<%= link_to "Add Work", work_path %>
<% end %>
<%= @ethos.tagline %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我在其他条件中有更多的条件.在一个视图中管理这个的最佳方法是什么?