我一直在从我的一个旧的 ruby on rails 3 应用程序中借用一些代码来开发一个新的 rails 4 应用程序。该代码在旧站点上有效,但在新站点上无效。
这是我的路线.rb:
scope ':username' do
resources :recipes
end
get "/:username" => "recipes#index"
这是我的控制器索引:
def index
@user = User.find_by_username params[:username]
@recipes = Recipe.all
end
和我的观点:
<% @recipes.each do |recipe| %>
<tr>
<td><%= recipe.name %></td>
<td><%= link_to recipe.name, recipe_path(username: @user.username, id: recipe.id) %></td>
<td><%= link_to 'Edit', edit_recipe_path(recipe) %></td>
<td><%= link_to 'Destroy', recipe, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
但错误弹出:
undefined method `username' for nil:NilClass
但当前用户用户名设置为test
所以它不是零,并且不应该弹出错误。
感谢大家的帮助!