小编Sta*_*ack的帖子

在rails中更新表单 - 没有路由匹配[PUT]

我有一个表单来创建广告.

控制器:

  def edit
    @engines = Engine.all
    @car = Car.find(params[:id])
  end

  def update
    @car = Car.find(params[:id])

    if @car.save
      redirect_to root_path
    end
  end
Run Code Online (Sandbox Code Playgroud)

我的路线:

resources :adverts
Run Code Online (Sandbox Code Playgroud)

Create.html.erb

<%= form_for @car, :url => adverts_path do |f| %>

  <div><%= f.label :name %><br />
  <%= f.text_field :name %></div>

  <%= hidden_field_tag :model_id, params[:model_id] %>

  <%= select_tag :engine_id, options_from_collection_for_select(@engines, "id", "name",:selected=>@car.engine_id) %>

  <div><%= f.submit "Create car!" %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我可以创建广告,但我不能更新它.

edit.html.erb

<%= form_for @car, :url => adverts_path do |f| %>

  <div><%= f.label :name %><br /> …
Run Code Online (Sandbox Code Playgroud)

forms routes insert-update ruby-on-rails-3

5
推荐指数
1
解决办法
1万
查看次数

为什么我在使用current_user.has_role时看到'0'?

在视图中,我设置了角色验证(gems cancan和rolify).

例如在HAML中

=if current_user.has_role? :admin
  = link_to current_user.name, '#' 
Run Code Online (Sandbox Code Playgroud)

生成的HTML

<a href="#">Administrator</a>
"
0




"
Run Code Online (Sandbox Code Playgroud)

为什么我看到'0'?

haml roles ruby-on-rails cancan ruby-on-rails-3

1
推荐指数
1
解决办法
460
查看次数