2013-07-22 58 views
0

因此,我一直在使用ruby在rails上开发Web应用程序。我在我的主页上有表单标签,但是当我点击提交时,它无法将信息保存到客人或当前用户(我正在使用设计)并重定向到不同的页面。该应用程序不给我任何错误,它只是不会收到的信息。预先感谢您的帮助!Form_tag提交轨道

class PageController < ApplicationController 
    def home 
    unless @button.nil? 
     @location = Place.create(:address => params[:place], :phone_number => params[:phone], :name => params[:title], :status => "not_purchased", :user_id => current_or_guest_user.id) 
     @location.save! 
     if @location.save && [email protected]? 
     redirect_to places_path 
     end 
    end 
    end 

    def index 
    end 


    def show 
    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @location } 
    end 
    end 

    def new 
    end 


    def create 
    unless @button.nil? 
     @location = Place.create(:address => params[:place], :phone_number => params[:phone], :name => params[:title], :status => "not_purchased", :user_id => current_or_guest_user.id) 
     @location.save! 
     if @location.save 
     format.html { redirect_to places_path} 
     format.json { render action: 'index', status: :created, location: places_path } 
     else 
     format.html { render action: 'new' } 
     format.json { render json: @location.errors, status: :unprocessable_entity } 
     end 
    end 
    end 


    def map 
    end 



end 

页/ home.html.erb

<section id="content"> 
    <div class="container"> 
    <div class="inside"> 
     <div class="wrapper row-1"> 
     <div class="box col-1 maxheight"> 
      <div class="border-right maxheight"> 
      <div class="border-bot maxheight"> 
       <div class="border-left maxheight"> 
       <div class="left-top-corner maxheight"> 
        <div class="right-top-corner maxheight"> 
        <div class="right-bot-corner maxheight"> 
         <div class="left-bot-corner maxheight"> 
         <div class="inner"> 
          <h3>Check Availability</h3> 
          <section style="border: 1px solid black;padding: 10px; margin:10px"> 
          <h5>Add your site(s)</h5> 
          <b><%= field_set_tag '' do %> </b> 
            <%= form_tag do %> 
             <p> 
             <%= label_tag 'title', "Name of Site"%> 
             <%= text_field_tag 'title', nil, :placeholder => "Enter your site name", :size => 40%><br/> 
             </p> 
             <p> 
             <%= label_tag 'place', "Address"%> 
             <%= text_field_tag 'place', nil, :placeholder => "Enter your address", :size => 40%><br/> 
             </p> 
             <p> 
             <%= label_tag 'phone', "Phone number"%> 
             <%= text_field_tag 'phone', nil, :placeholder => "Enter your phone number", :size => 40%><br/> 
             </p> 
             <p><span><span><%[email protected] = submit_tag "Add me!", data: {:confirm => "Are you sure?"}%></span></span></p> 
            <% end %> 
           <% end %> 
         </div> 
         </div> 
        </div> 
        </div> 
       </div> 
       </div> 
      </div> 
      </div> 
     </div> 
     </div> 
     <div class="clear"></div> 
    </div> 
    </div> 
    </div> 
    </div> 
</section> 

回答

0

你或许可以让你的表格前摆脱field_set_tag的。不知道这是什么目的,因为你没有传递任何东西。

然后在你的form_tag补充一点:

<%= form_tag @location do %> 

哪里@location是对象的形式是约。你没有创造它有

@location = Place.create(:address => params[:place], :phone_number => params[:phone], :name => params[:title], :status => "not_purchased", :user_id => current_or_guest_user.id) 
    @location.save! 

而且从你家这个控制器删除。您正在使用您的create操作创建它。因此,在您#home行动,而不只是实例什么@location是:

@location = Place.new user_id: current_or_guest_user.id 
0

在您的网页/ home.html.erb观点,form_tag需要一个指向控制器动作的URL。它的空白ATM因此默认为POST操作,但它不会发布任何内容。尝试:

<%= form_tag @location do %> 

另外,@button实例变量总是等于零,因为它似乎没有被初始化到任何地方。