index

时间:2016-05-13 09:54:13

标签: ruby-on-rails

我是铁路的新手,并尝试建立我的第一个网站,但在索引页面中遇到链接问题。该链接重定向到/recipes.1而不是/ recipes / 1。 我尝试/食谱/ 1时显示页面工作。

Index.html.erb

<% provide(:title, "Recipe") %>
<% @recipes.each do |recipe| %>
  <%= link_to recipe.label, recipe%>
<%end%>

route.db

get       'recipe'     => 'recipes#show'
get       'recipe'     => 'recipes#new'
post     'recipe'       => 'recipes#create'
resources :users
resources :recipes

recipes_controller.rb

def index
  @recipes = Recipe.all
end

def show
    @recipe = Recipe.find(params[:id])
end

4 个答案:

答案 0 :(得分:1)

routes.rb

中删除以下路线
result.txt/

由于get 'recipe' => 'recipes#show' get 'recipe' => 'recipes#new' post 'recipe' => 'recipes#create' 为您生成所有这些路线,因此不需要上述路线。

希望它有所帮助!

答案 1 :(得分:0)

试试此代码

 <% @recipes.each do |recipe| %>
   <%= link_to recipe.label, recipe_url(recipe) %>
<%end%>

答案 2 :(得分:0)

使用

<%=link_to recipe.label, recipe_path(recipe)%>

而不是

<%= link_to recipe.label, recipe%>

答案 3 :(得分:0)

您已定义两次显示路径。 1.在手动定义的路径

get       'recipe'     => 'recipes#show'

2。通过

resources :recipes

如果您执行rake routes,那么您将首先选择使用/recipe url为get方法创建路由,并将参数附加到其中,从而生成/recipes.1路径。

还可以在从上到下方法中读取路径文件。使用show method的第一条路线。