在 rails 上使用 ruby 检查 URL 路径
Check the URL path using ruby on rails
在我的项目中,我使用过的gems 是:rails admin、cancancan 和devise.When 我进行了捆绑安装,将添加很多视图。我添加 "can :crud, [xxxx, xxxxx]" 在我的能力模型中有一个 CRUD。
问:如何查看视图中的当前路径?因为我想禁用某些字段。示例:我在新的路径方法中并且有 3 个字段(然后我单击 submit/create,现在它将添加数据)。我点击了编辑按钮,然后有一个字段将被禁用。
注意:新建路径和编辑路径两种形式在同一个文件中(activities_types/_form.html.erb).
查看
_Form.html.erb
<% if current_page?(new_activity_type_path) %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<% else %>
<div class="field">
<%= f.label :"name" %>
<%= f.text_field :name, disabled: true %>
</div>
<% end %>
<div class="field">
<%= f.label :description %>
<%= f.text_field :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
我会在控制器的 new
和 edit
方法中设置一个实例变量,然后检查表单中的值。
示例:
def new
@whereAmI = "new"
end
def edit
@whereAmI = "edit"
end
在视图中:
<% if @whereAmI == "edit" %>
<%= f.text_field :name, disabled: true %>
<% elsif @whereAmI == "new" %>
<%= f.text_field :name %>
<% end %>
如果您想区分视图中的编辑操作和新操作,那么
<% if params[:action] == "new" %>
...
<% elsif params[:action] == "edit" %>
...
<% end %>
或
<div class="field">
<%= f.label :name %>
<% if params[:action] == "new" %>
<%= f.text_field :name %>
<% else %>
<%= f.text_field :name, disabled: true %>
<% end %>
</div>
<div class="field">
<%= f.label :description %>
<%= f.text_field :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
您可以这样检查操作:
if params[:action] == "new"
# doing something
elsif params[:action] == "edit"
# doing something
end
在我的项目中,我使用过的gems 是:rails admin、cancancan 和devise.When 我进行了捆绑安装,将添加很多视图。我添加 "can :crud, [xxxx, xxxxx]" 在我的能力模型中有一个 CRUD。
问:如何查看视图中的当前路径?因为我想禁用某些字段。示例:我在新的路径方法中并且有 3 个字段(然后我单击 submit/create,现在它将添加数据)。我点击了编辑按钮,然后有一个字段将被禁用。
注意:新建路径和编辑路径两种形式在同一个文件中(activities_types/_form.html.erb).
查看
_Form.html.erb
<% if current_page?(new_activity_type_path) %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<% else %>
<div class="field">
<%= f.label :"name" %>
<%= f.text_field :name, disabled: true %>
</div>
<% end %>
<div class="field">
<%= f.label :description %>
<%= f.text_field :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
我会在控制器的 new
和 edit
方法中设置一个实例变量,然后检查表单中的值。
示例:
def new
@whereAmI = "new"
end
def edit
@whereAmI = "edit"
end
在视图中:
<% if @whereAmI == "edit" %>
<%= f.text_field :name, disabled: true %>
<% elsif @whereAmI == "new" %>
<%= f.text_field :name %>
<% end %>
如果您想区分视图中的编辑操作和新操作,那么
<% if params[:action] == "new" %>
...
<% elsif params[:action] == "edit" %>
...
<% end %>
或
<div class="field">
<%= f.label :name %>
<% if params[:action] == "new" %>
<%= f.text_field :name %>
<% else %>
<%= f.text_field :name, disabled: true %>
<% end %>
</div>
<div class="field">
<%= f.label :description %>
<%= f.text_field :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
您可以这样检查操作:
if params[:action] == "new"
# doing something
elsif params[:action] == "edit"
# doing something
end