Как новичок в Ruby on Rails, я понимаю, что ссылки «@» и «:» имеют разные значения. Я видел этот пост в SO, в котором описаны некоторые различия.
Я столкнулся с ситуацией, когда у меня была стандартная страница MVC, похожая на все другие формы / страницы в моем веб-приложении.
фрагмент html.erb
<%= form_for @my_selection do |f| %>
фрагмент route.rb
resources :my_selections
Когда Я пытаюсь открыть эту страницу и получаю такую ошибку:
NoMethodError in selections#create
Showing C:/somedir/myapp/app/views/my_selections/index.html.erb where line #16 raised:
undefined method `my_selection_index_path' for #<#:0x25439c3b>
Строка 16 фрагмент формы, показанный выше.
Все мои другие формы / страницы в том же веб-приложении настроены точно так же и работают нормально. Однако, как только я изменил ссылку формы erb на : my_selection , эта ошибка исчезла, и моя страница вела себя нормально.
Вопросы: