2015-05-10 5 views
0
Checks_controller 

class Checkscontroller < ApplicationController 

    def show 
     @check= Tester.find(params[:id]) 
    end 

    def new 
    end 

    def create 
     @check = Tester.new(check_params) 
     @check.save 
     redirect_to @check 
    end 


    def check_params 
     params.require(:check).permit(:title, :description) 
    end 

end 

Я пытаюсь сохранить данные в контроллере 'чеков к модели «Tester», получая "NoMethodError в ChecksController # создать», не определен метод tester_url' for #` при попытке сохранить данные мой DB Там, кажется, какой-то вопрос в этой строке:.. «redirect_to @check»NoMethodError в Rails при сохранении данных

routes.rb

Rails.application.routes.draw do 
    get 'home/screen' 
    resources :checks 
    root 'home#screen' 
end 
+0

Пожалуйста, покажите ваш routes.rb файла – Mario

+0

Вот он: Rails.application.routes.draw сделать получить «дома/экрана» ресурсов: проверяет root 'home # screen' end – gowthamjs23

+0

Пожалуйста, отредактируйте свой вопрос, чтобы он был читабельным. Кроме того, какова связь между моделью Tester и Checks? – Mario

ответ

2

EDIT: Я вижу, что этот ответ был принят к кому-либо еще, глядя на это:. ПОЖАЛУЙСТА НЕ ДЕЛАЙТЕ ЭТО БЕЗ ДЕЙСТВИТЕЛЬНО ХОРОШЕЙ ПРИЧИНЫ.

Итак, так как вы хотите использовать ChecksController для своей модели Tester, вам придется добавить это к вашим маршрутам: обратите внимание, что я предполагаю, что у вас нет модели проверки, так как я не увидеть его где угодно, и вы используете Tester в качестве чек?

resources :testers, as: 'checks' controller: 'checks' 

Эта линия будет сделать так, чтобы /checks/1 идет к Tester объекту с ID: 1, и использовать метод ChecksControllershow показать это


Старый ответ, для потомков

Вы получаете эту ошибку, потому что вам не хватает маршрутов для вашей модели тестера в вашем файле routes.rb.

Вы можете добавить resources :testers, и он будет работать. Конечно, вы также уже нужно МИНИМУМ ваш TestersController существовать с show действием

Эта ошибка возникает из-за когда вы redirect_to @check, Rails знает, что это объект Tester и ожидает маршрут под названием тестер пути к TestersController#show. Он пытается использовать вспомогательный метод, который создает рельсы для маршрутов, называемого tester_url

+0

Я планировал использовать контроллер «проверки», чтобы показать действие. Я использую rails v4.2.1, и я начинаю следующий, http://guides.rubyonrails.org/getting_started.html#saving-data-in-the-controller. Я в настоящее время застрял в разделе 5.7, не очень уверен, что мне не хватает чего-то другого. – gowthamjs23

+0

@ gowthamjs23 Не могли бы вы отредактировать исходный вопрос, чтобы объяснить, зачем вам нужен объект Tester? Когда используются объекты проверки? Вы не можете перенаправлять на объект Tester прямо таким образом, не имея дополнительной конфигурации. – Mario

+0

Спасибо за ответ. Я следил за ссылкой, упомянутой выше, и тестер ссылается на класс с именем Tester, который определен в \ models \ tester.rb. – gowthamjs23