2013-06-26 29 views
0

我是ruby/rails新手。 我試圖創建一個複選框的形式,當用戶提交他們已經選擇(它會將該值發送到數據庫(以供以後的比較和返回一個哈希值)更新的Rails錯誤:PostsController中的SyntaxError#new

I UPDATED this post基於關,我在下面收到的反饋意見(謝謝) * 現在,我的代碼做如下(見下文): *

我收到以下錯誤,當我選擇:

的SyntaxError在PostsController#new /Users/user/rails_projec ts/SWORDMock_dev/app/controllers/posts_controller.rb:15:未終止的正則表達式符合文件結尾/Users/user/rails_projects/SWORDMock_dev/app/controllers/posts_controller.rb:15:語法錯誤,意外的$結束,期待關鍵字結束

Rails.root:/ Users/user/rails_projects/SWORDMock_dev

Application Trace |框架跟蹤|全面跟蹤 請求

參數:

這裏距離posts_controller.rb文件我的代碼:

class PostsController < ApplicationController 
    def new 
    end 

    def create 
     @post = Post.new(params[:post].permit(:check_box, :label)) 
     @post.save 
     redirect_to @post 
    end 

    def show 
     @post = Post.find(params[:id]) 
    end 

    posts GET /posts(.:format)   posts#show 

    private 
     def post_params 
      params.require(:post).permit(:check_box, :label) 
     end 

    def index 
     @posts = Post.all 
    end 

end 

這裏是我的new.html.erb文件:

<h1>SWORD Mock Device Page</h1> 

<%= form_for :post, url: posts_path do |f| %> 
    <p> 
     <h2>Android Phones</h2> 
     <%= f.check_box(:razr_max1) %> 
     <%= f.label(:razr_max1, "Droid Razr Max #1") %> 
    </p> 

    <p> 
     <%= f.check_box(:galaxyS2) %> 
     <%= f.label(:galaxyS2, "Samsung Galaxy S2") %> 
    </p> 

    <p> 
     <h2>Android Tablets</h2> 
     <%= f.check_box(:asusprime3) %> 
     <%= f.label(:asusprime3, "Asus Transormer Prime #3") %> 
    </p> 

    <p> 
     <%= f.check_box(:motoxoom1) %> 
     <%= f.label(:motoxoom1, "Motorola Xoom #1") %> 
    </p> 

    <p> 
     <%=f.submit "Select" %> 
    </p> 
<% end %> 

我真的需要明白我在這裏做錯了什麼。 謝謝!

ironmantis7x

回答

1

它看起來像new.html.erb文件丟失引用到 「f」。對於字段:

http://guides.rubyonrails.org/form_helpers.html#binding-a-form-to-an-object

另外,作爲一個側面說明顯示方法就在你的控制器private關鍵字這或許應該忘私移後。

您也可以爲複選框顯式創建表單域,並在複選框字段中使用name = post [attribute_name_here]作爲屬性,它在我看來就像您需要一些更明確的代碼來完成此操作一樣您可能試圖將所選項目保存到帖子的一個字段中。

+0

感謝您的信息和幫助。你能否解釋你的評論「use name = post [attribute_name_here]」?我很困惑這個? – ironmantis7x

相關問題