我有一个表单来创建广告.
控制器:
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) 在视图中,我设置了角色验证(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'?