게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
ruby on rails scaffolding에 대해 질문드립니다..ㅜㅜ
게시물ID : programmer_18146짧은주소 복사하기
작성자 : 계속초보
추천 : 0
조회수 : 292회
댓글수 : 0개
등록시간 : 2016/08/11 03:08:36
안녕하세요. 프로그래머 게시판은 처음인데 너무 답답한 마음에 찾아오게 되었습니다.

ruby on rails로 웹사이트를 만들고 있는.. 그냥 학생입니다. 컴과 전공자는 아니구요.
scaffold로 모델을 만들었고 코드를 조금 입맛대로 바꿨었는데요.
며칠전까지만 해도 잘 되던 CRUD 기능이 갑자기 잘 안되어서.. 새로운 데이터 입력이 안되더라고요 (create)
러닝 터미널을 보았더니.. TalksController#create로 연결되어야 하는데 TalksController#index로 연결되는 듯 싶어 이런저런 시도를 해 보고 있는데 잘 안되네요.
일단 제 코드 첨부할게요.


talks_controller.rb

  class TalksController < ApplicationController  before_action :set_talk, only: [:show, :edit, :update, :destroy]  before_action :authenticate_user!, except: [ :index, :show, :all ]   # GET /talks  # GET /talks.json   def all     @talks = Talk.all     @talks = Talk.order(created_at: :desc)  end   def index     @talks = Talk.all     @talks = Talk.order(created_at: :desc)     @whichboard = params[:whichboard]    @seq = params[:saveit]    @title = params[:savetitle]  end   # GET /talks/1  # GET /talks/1.json  def show   end   # GET /talks/new  def new    @talk = Talk.new    @seq = params[:seq]    @whichboard = params[:whichboard]  end   # GET /talks/1/edit  def edit     authorize_action_for @talk  end   # POST /talks  # POST /talks.json  def create     @talk = Talk.new(talk_params)    @talk.user_id = current_user     @talk.seq = params[:talk][:seq]    @talk.where = params[:talk][:where]     respond_to do |format|      if @talk.save         format.html { redirect_to @talk, notice: 'Talk was successfully created.' }        format.json { render :index, status: :created, location: @talk }      else        format.html { render :new }        format.json { render json: @talk.errors, status: :unprocessable_entity }      end    end   end   # PATCH/PUT /talks/1  # PATCH/PUT /talks/1.json  def update     authorize_action_for @talk    respond_to do |format|      if @talk.update(talk_params)        format.html { redirect_to @talk, notice: 'Talk was successfully updated.' }        format.json { render :show, status: :ok, location: @talk }      else        format.html { render :edit }        format.json { render json: @talk.errors, status: :unprocessable_entity }      end    end   end    # DELETE /talks/1  # DELETE /talks/1.json  def destroy     authorize_action_for @talk    @talk.destroy     respond_to do |format|      format.html { redirect_to talks_url, notice: 'Talk was successfully destroyed.' }      format.json { head :no_content }    end  end   private    # Use callbacks to share common setup or constraints between actions.    def set_talk       @talk = Talk.find(params[:id])    end     # Never trust parameters from the scary internet, only allow the white list through.    def talk_params       params.require(:talk).permit(:content, :user_id, :seq, :where)    endend

_form.html.erb

<%= simple_form_for(@talk) do |f| %>   <%= f.error_notification %>    <div class="form-inputs">    <%= f.input :content %>     <%#= f.association :user %>     <%= f.input :seq,  :as => :hidden, :input_html => { :value => @seq } %>     <%= f.input :where,  :as => :hidden, :input_html => { :value => @whichboard } %>   </div>   <div class="form-actions">    <%= f.button :submit %>   </div><% end %>

new.html.erb

<div class="row">  <div class='col-md-12'>    <p style='text-align:right;'>      created by <%= current_user.name %>, Current Time : <%= Time.now %>, board <%= @whichboard %> seq <%= @seq %>     </p>  </div></div><%= render 'form' %> <%= link_to 'Back', talks_path %>

routes.rb

Rails.application.routes.draw do   devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }   root 'cpu#index'  post ':controller(/:action(/:id(.:format)))'  get ':controller(/:action(/:id(.:format)))'    resources :talks end

그나마 해결할 뻔한 건 _form.html.erb의 첫 번째 줄을 다음과 같이 수정했을 때인데요. 이렇게 하니 create는 되는데 "The action '11' could not be found for TalksController"라는 오류가 나네요. '11'은 방금 입력된 데이터의 id 입니다.. 혼자 검색해가며 어찌어찌 문제 해결해갔었는데 이 문제는 도저히 모르겠어서 stack overflow에도 질문 올려보다가 이곳에도 한 번 올려봅니다.. ㅜㅠ 한국어로 설명하면 훨씬 쉬울 줄 알았는데 그렇지도 않네요.. 문제 상황 전달이 잘 되었는지 모르겠습니다.ㅜ 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호