Мое предложение должно только запуститься - выбирают маленький проект, который Вы обычно использовали бы для изучения языка MVC-стиля (т.е. что-то с базой данных, возможно, некоторый основной рабочий процесс), и затем поскольку необходимо изучить понятие, используйте один (или оба!)
Гибкая веб-разработка с направляющими или направляющими Путь
для приобретения знаний о том, как это работает, и затем пробует его.
проблемы с Гибкой веб-разработкой состоят в том, что это устарело, и что сценарий работает слишком долго для Вас действительно, чтобы хотеть создать его однажды; направляющие, за которыми Путь может быть тверд следовать, поскольку он возвращается от ссылки до изучения, но когда это хорошо, это лучше, чем Гибкая веб-разработка.
, Но в целом они - и хорошие книги, и они оба хороши для изучения, но ни один из них не обеспечивает "образовательный" путь, за которым Вы захотите следовать. Таким образом, я прочитал несколько глав первого (достаточно, чтобы получить фундаментальные понятия и изучить, как загрузить первое приложение - существуют некоторые статьи онлайн, которые помогают с этим также), и затем просто начал, и затем каждые несколько дней, которые я считал о чем-то новом или я использую книги для понимания чего-то.
Еще одна вещь: обе книги являются намного большим количеством книг направляющих, чем они - книги Ruby, и если Вы собираетесь записать чистый код, стоит провести день, изучая синтаксис Ruby как можно раньше. То, почему Руководство по Ruby, является хорошим, также существуют другие.
Вам не нужен _ в вашем коде. Это должно быть:
<%= render :partial => 'tasks/new' %>
Первая ошибка связана с тем, что вам не нужно помещать _ внутри параметра: partial. Об этом позаботится Rails. Вот почему вы получаете двойное __, потому что Rails поместит его за вас.
Вторая ошибка - ваша настоящая проблема. Ошибка предполагает, что @task равен нулю. Это верно, потому что партиал знает только то, что знает представление контейнера, а ваше представление в этот конкретный момент не вызвало действие из соответствующего контроллера. Как вы (Малыш Диего) уже узнали и указали в одном из ваших комментариев ниже, вам нужно было создать экземпляр Задачи в вашем партиале. Не знаю, есть ли более элегантное решение, но, может быть, кто-нибудь в будущем предложит что-нибудь получше.
Петрос правильно определил первую проблему - вам не нужно подчеркивание в частичном вызове. Второе, что нужно знать о партиалах, это то, что они не вызывают метод контроллера, они просто ссылаются на представление. Таким образом, вам необходимо настроить объект @task в каждом действии, которое использует этот частичный код, или просто вызвать Task.new в частичном. Когда у меня есть партиал в макете в подобных ситуациях, я обычно загружаю его с помощью JavaScript, чтобы я мог вызвать действие.