这是一个非常基本的问题,但是,我无法在任何文档中找到简单的答案。
用例:
仅使用type_micro =" business"
我可以在index.html.erb中传递此条件,其中调用partial以使其成为一个简单的实现吗?
当前代码:
1)microposts/index.html.erb
<%= render @microposts %>
{{how can I pass type_micro = "business" right here?}}
2)microposts table
id | integer | not null default
title | text |
body | text |
user_id | integer |
created_at | timestamp without time zone | not null
updated_at | timestamp without time zone | not null
type_micro | character varying
3)_micropost.html.erb
<span>
<p class="title-post"><%= link_to micropost.title, micropost_path) %> </p> </span>
4)Micropost Controller
def index
@microposts = Micropost.paginate(page: params[:page])
@micropost = @micropost.find(params[:type_micro])
end
def show
@micropost = Micropost.find(params[:id])
@micropost = @micropost.find(params[:type_micro])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @micropost }
end
end
更新:我想传递type_micro,以便我可以将&#34; business&#34;,&#34; management&#34;,&#34; social&#34;我认为分为三个部分。我通过谷歌查找解决方案,因为没有关于这个简单的事情的文档。什么都没有用,尝试了这里推荐的东西。这是代码现在的位置:
控制器: def index
@microposts = Micropost.paginate(page: params[:page]
端
def show @micropost = Micropost.find(params [:id])无法添加@micropost = @ micropost.find(params [:type_micro]),因为我收到错误,查找未定义。不知道为什么。
Index.html.erb
上述内容并未显示所有&#34; business&#34;的微博。它什么都不过滤。
答案 0 :(得分:0)
为什么需要将type_micro = "business"
传递给部分。从您的控制器代码看,您似乎已经根据params[:type_micro]
过滤了“商家”类型的微博?
尽管如此,视图(包括部分视图)可以访问params
。所以你直接在部分中调用params[:type_micro]
。或者您也可以在部分中设置@type_micro
= params [:type_micro] in your controller's action and acceess
@ type_micro`。
最后一种情况是,如果您确实需要将{business}作为type_micro
传递给您的部分内容,原因是其他原因,您可以尝试使用<%= render @microposts, locals: { type_micro: "business" } %>
,type_micro
可以访问$('form#formID').submit(function(e){
var emptyinputs = $(this).find('select').filter(function(){
return !$.trim(this.value).length;
}).prop('disabled',true);
var emptyinputs = $(this).find('input').filter(function(){
return !$.trim(this.value).length;
}).prop('disabled',true);
});
部分中的局部变量,其值为“business”。
有关详细信息,请参阅PartialRenderer。
答案 1 :(得分:0)
试
ectform
然后在您的部分内容中,您可以在部分HTML
中调用<%= render @microposts, type_micro: "business" %>