Rails表单不断返回一个nomethoderror

时间:2011-08-18 07:06:23

标签: ruby-on-rails ruby forms nomethoderror

        <%= form_for rating_ballot, :html => { :class => 'rating_ballot' } do |f| %>
            <%= f.label("value_1", content_tag(:span, '1'), {:class=>"rating", :id=>"1"})
            radio_button_tag("rating[value]", 1, current_user_rating == 1, :class => 'rating_button') %>
            <%= f.label("value_2", content_tag(:span, '2'), {:class=>"rating", :id=>"2"})
            radio_button_tag("rating[value]", 2, current_user_rating == 2, :class => 'rating_button') %>
            <%= f.label("value_3", content_tag(:span, '3'), {:class=>"rating", :id=>"3"})
            radio_button_tag("rating[value]", 3, current_user_rating == 3, :class => 'rating_button') %>
            <%= f.label("value_4", content_tag(:span, '4'), {:class=>"rating", :id=>"4"})
            radio_button_tag("rating[value]", 4, current_user_rating == 4, :class => 'rating_button') %>
            <%= f.label("value_5", content_tag(:span, '5'), {:class=>"rating", :id=>"5"})
            radio_button_tag("rating[value]", 5, current_user_rating == 5, :class => 'rating_button') %>

            <%= hidden_field_tag("message", msg.message) %>
            <%= f.submit :Submit %>
        <%- end -%>

这是我的表单,我正在尝试为用户创建一个系统,以“明星”系统形式this教程对消息进行排名。我已经按照教程中的所有说明进行操作,但是当我包含此表单时,我得到了一个nomethoderror undefined method 'ratings_path'。在我的home_helper我有

  def rating_ballot
    if @rating = current_user.ratings.find_by_id(params[:msg])
      @rating
    else
      current_user.ratings.new
    end
  end

  def current_user_rating
    if @rating = current_user.ratings.find_by_id(params[:msg])
      @rating.value
    else
      "N/A"
    end
  end

为什么我收到此错误?感谢

1 个答案:

答案 0 :(得分:4)

这是路由问题。 * _path称为路径助手。运行rake routes以查看您拥有的路线。您可能需要为操作添加新路由才能使用路径助手。从您的代码中,我猜你需要:

  

资源:评级

但是,任何人都会猜测应用程序的其余部分是什么样的。