나는 루비와 레일스에서 실제 안돼서, 나는 이일에 대한 솔루션을 찾고 있었어요. 나는 데이터베이스에 새 항목을 추가하는 내 컨트롤러에 '을 만들 '행동 때 form_tag에서 데이터를 제출해야하지만, 내가 정말 뭔가를 잘못하고 있어요처럼 절대적으로 아무 일도 발생하지 않기 때문에,보고,이 때 form_tag도 리디렉션하지 않는 것 같다 필요한 행동에.Rails 5. form_tag에서 맞춤 동작으로 제출하는 방법은 무엇입니까?
<h1>Todos</h1>
<% @projects.each do |project| %>
<tr>
<h2><%= project.title %></h2>
<% project.todos.each do |todo| %>
<ul style="list-style-type:disc">
<li><%= todo.text %></li>
</ul>
<% end %>
</tr>
<% end %>
<%= form_tag({controller: "mega", action: "create"}, method: "get", remote: true) do %>
<h2>New todo</h2>
<p>
<%= text_field_tag 'text' %>
</p>
<p>
<%= select_tag 'title', options_from_collection_for_select(@projects, 'id', 'title') %>
</p>
<p>
<%= link_to 'CANCEL' %>
<%= link_to 'OK', "", :onclick => "$('#form_id').submit()" %>
</p>
<% end %>
그리고 컨트롤러 :
class MegaController < ApplicationController
def index
@projects = Project.all
@todos = Todo.all
end
def update
end
def create
@newTodo = Todo.create(text: params[:text])
@newProject = Project.find_by(title: params[:title])
@newProject.todos << @todo
@newTodo.save
end
end
내 루트 파일 다음은 페이지 코드입니다. 나는 진지하게 그것이 어떻게 작동하는지 모른다 :
Rails.application.routes.draw do
get 'mega/index'
root 'mega#index'
get 'mega/update'
post 'mega/create'
resources :todos
resources :projects
end
은 (당신이 당신의 서버를 실행하는 경우) 당신은 아마 콘솔에 라우팅 오류가 발생한다처럼 보인다. 양식은 일반적으로 '얻지 않습니다'. 그들은 보통 '게시'합니다. 어쨌든, 콘솔의 텍스트를 질문에 추가하여 상황을 볼 수 있도록해야합니다. – jvillian
오류가 보이지 않습니다. 오류 로그를 찾는 방법이 있습니까? – UsedC
할 일이 있다면 지금까지 여러 가지 리소스를 생성하는 작업을 만드는 것입니다. 그것의 진보 된 화제 thats는 멍청한 놈에게 정말로 적합하지 않습니다. 나는 당신이 좋은 튜토리얼을 가지고 레일 관례를 먼저 알아내는 것이 좋습니다. – max